一、 问题描述
由于工作需要在linux下使用ffmpeg实现视频的编码功能,然后就在通过git克隆下了ffmpeg的源码并成功的编译安装,视频解码没有问题,但是视频编码就不行,通过avcodec_open2()打开编码器时,出现以下错误提醒,函数的返回值为-22:
''could not find a valid device''
"cant configure encoder"
第一次编译ffmpeg是参考https://blog.csdn.net/wawayu_0/article/details/80564349博客编译ffmpeg,没有添加进任何库的.但是ffplay照样可以播放本地flv文件,ffmpeg可以进行转码和解码。
编译时使用的指令如下:
./configure --enable-shared --prefix=/usr/local/ffmpeg
make
sudo make install
指令的具体含义稍微作出解释。
单纯的以为上面ffmpeg编译安装完成后,就能够使用ffmpeg的动态接库实现H.264的视频编码了,其实是不行的(出现''could not find a valid device'' 错误),原因是编译ffmpeg时并没有通过“--enable-libx264”指令来添加其第三方库使得编译的ffmpeg具有H.264的编码功能。
二、 Linux 命令详解 ./configure、make、make install 命令
这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。(AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。)
1、详细解释
(1)./configure 命令
它是个shell脚本,用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC。
这一步一般用来生成 Makefile,为下一步的编译做准备,可以通过在 configure 后加上参数来对安装进行控制,比如代码: