Ubuntu16.04系统安装ffmpeg和x264

问题描述

近两天由于项目需要,要搞一下拉流的问题,于是在网上找了个开源的源码进行测试。在使用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

  1. 首先下载x264:
git clone https://code.videolan.org/videolan/x264

在这里插入图片描述

  1. 安装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的视频推流,结果不再报错了:
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值