问题描述
近两天由于项目需要,要搞一下拉流的问题,于是在网上找了个开源的源码进行测试。在使用ffmpeg进行视频推流时遇到了: [h264_v4l2m2m @ 0x141c300] Could not find a valid device,即未找到x264库的问题。造成该问题的原因是,我在安装ffmpeg前,没有安装x264造成的。问题截图:
经过总结,下面给出正确安装ffmpeg的步骤。
首先可以选择安装yasm汇编编译器,因为x264和ffmpeg为了提高效率使用了汇编指令,如MMX和SSE等。如果系统中未安装yasm时,执行./configure 时会报错。
nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
当然也可以不使用yasm也可以:在执行./configure时,增加–disable-x86asm,如下所示:
./configure --disable-x86asm
安装yasm汇编编译器命令:
sudo apt-get install yasm
一、安装x264
- 首先下载x264:
git clone https://code.videolan.org/videolan/x264
- 安装x264
./configure --enable-shared --disable-asm --prefix=/usr/local/x264
make -j4
make install
二、安装ffmpeg
1. 安装依赖库
sudo apt-get update #很重要,否则可能用不了apt-get install
sudo apt-get -f install # 解决安装包中的依赖关系
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
apt-get install libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
2. 下载ffmpeg
下载地址:https://ffmpeg.org/download.html#releases
3. 解压并进入解压后目录
我下载的是ffmpeg-4.3.1.tar.xz
tar -xvf ffmpeg-4.3.1.tar.xz
cd ffmpeg-4.3.1
4. 编译并安装ffmpeg
4.1 执行编译配置命令
我在执行以下命令时,遇到了找不到libx264的错误:ERROR: libx264 not found:
./configure --enable-shared --enable-libx264 --enable-gpl --prefix=/usr/local/ffmpeg/
为了解决上述错误问题,我在命令中指定了x264的安装路径:–extra-cflags=“-I/usr/local/x264/include” --extra-ldflags=“-L/usr/local/x264/lib”
./configure --enable-shared --extra-cflags="-I/usr/local/x264/include" --extra-ldflags="-L/usr/local/x264/lib" --enable-libx264 --enable-gpl --prefix=/usr/local/ffmpeg/
4.2 编译与安装
make -j4
make install
5. 检查是否安装成功
在命令窗口输入命令:ffmpeg -version
显示以下结果,则表示安装成功。
三、验证ffmpeg视频推流
接下来测试下ffmpeg的视频推流,结果不再报错了: