【FFMPEG】开发和使用
一、概念
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(),不进行注册的话,你会发现什么编解码器都找不到!