遇到的问题:
运行 :av_find_input_format(“video4linux2”); 查找usb摄像头的时候,返回 NULL 。
解决方式:
在configure中要配置下面两个选项:
–enable-avdevice 使能硬件设备
–enable-indev=v4l2 使能输入设备,并且要指定输入设备v4l2。
(–enable-indev= NAME) 也可以用同上方法继续添加其他输入设备。
运行脚本./configure,修改成功会有对应提示信息:
上面配置了configure,就会在源码indev_list[]中生成设备:&ff_v4l2_demuxer,
static const AVInputFormat * const indev_list[] = {
&ff_fbdev_demuxer,
&ff_oss_demuxer,
&ff_v4l2_demuxer,
NULL };
扩展知识:
值得注意的是,这些list源文件,libavformat/muxer_list.c,libavformat/demuxer_list.c,和libavdevice/outdev_list.c,libavdevice/indev_list.c 是在下载下来的源代码中看不到的,只有执行了FFMPEG根目录的configure文件才能够生成这些个list文件。这样做的目的是为了在用户自行往ffmpeg中加入了封装和解封装器的时候,这样做可以让用户的封装/解封装器一并被写入到list中。