【FFMPEG】开发和使用

置身0与1之间的生活 / 2023-06-23 / 原文

 一、概念
 
1. GOP(Group of Pictures),下面的链接是对其的一些讨论,核心意思就是这个值制定了最近的两个 I 帧的间隔:
  • http://www.itnotepad.cn/Home/Article/num/189.html
  • https://stackoverflow.com/questions/24010875/how-to-calculate-gop-size-of-a-file-h264
  • https://blog.csdn.net/daiqiao_ios/article/details/80751322
  •  
 
二、
 
如果是老版本的 ffmpeg,一定要记得 register(),否则不能用。 avcodec_register_all()
 
h264_cuvid 的 yuv 格式是 NV12
 
ffmpeg -h decoder=h264_cuvid,可以通过这种方式来查看 codecs 的详细情况
ffmpeg -codecs,可以查看有哪些 codecs
 
libavutil/pixdesc.h   记录了格式的详细信息
 
 
三、编译和安装
./configure --extra-cflags="-fPIC" --enable-nonfree --enable-pic --enable-shared
 
./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --extra-cflags=-fPIC --enable-nonfree --enable-pic --enable-shared --enable-libx264 --enable-gpl --enable-postproc --prefix=/root/ffmpeg
 
gcc extract_cam.c -L/usr/local/lib -lavdevice -lavformat -lavfilter  -lavcodec -lswresample -lswscale -lavutil -o test
 
 
特别注意:
  • 如果是老版本的 ffmpeg,一定要记得 register,否则不能用。例如:avcodec_register_all(),不进行注册的话,你会发现什么编解码器都找不到!