ubuntu18.04编译FFMPEG

一个多媒体播放器的实现架构如下图所示:

FFMPEG在搞多媒体音视编解码同学的手里可谓是瑞士军刀,FFMPEG不但集成了算法,框架,而且可以作为一个插件嵌入进更大的框架中,比如gstreamer默认的解码路径就是通过gst-libav插件实现的,而gst-libav就是对FFMPEG的封装。很多流行的多媒体播放器比如QQ影音就是将FFPEG套了个GUI的壳实现的,还死不承认,结果上了FFMPEG的黑名单。

FFMPEG框架:

下面介绍一下FFMPEG在ubuntu18.04上的编译:

1:获取源码

http://www.ffmpeg.org/download.html#releases

2.安装依赖

sudo apt install yasm 
sudo apt-get install libx264-dev
sudo apt install libsdl2-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install libopus-dev
sudo apt-get install libavdevice-dev

3.配置

最新的gstreamer构建已经从configure切换为meson和ninja了,ffmpeg仍然沿用./configure

./configure --target-os=linux --prefix=/home/caozilong/Workspace/ffmpeg/ffmpeg-install --arch=x86_64 --disable-doc --enable-libx264 --enable-libmp3lame --enable-libopus --enable-debug=3 --extra-cflags="" --extra-ldflags="" --enable-gpl

因为--enable-libx264引入GPL协议的文件,所以FFMPG必须也要打开--enable-gpl选项,否则配置会出错

配置结束后,会列出当前支持的所有功能组件:

4 编译.

5.安装

安装后,查看安装目录:


多媒体解码测试:

./ffplay /media/caozilong/B0509F8C509F5844/The.Godfather.Part2.Blu-ray.720p.x264.DD51-HiS@MySiLU.mkv

上面的配置生成的固件是stripped的,要想保留调试信息,需要添加--disable-stripping选项,调试的话,最好也加上--disable-optimizations选项。

加上后:

./configure --target-os=linux --prefix=/home/caozilong/Workspace/ffmpeg/ffmpeg-install --arch=x86_64 --disable-doc --enable-libx264 --enable-libmp3lame --enable-libopus --enable-debug=3 --extra-cflags="" --extra-ldflags="" --enable-gpl --disable-stripping --disable-optimizations

重新编译,这次是 "not stripped"的了。

这样编译出来的FFMPEG不支持google VP8/VP9格式,由于H264/H265等格式有版权问题,很多开源项目在引用这类视频Codec的时候都非常小心的将这两种格式的解码器以库形式提供,并不开放源代码,比如Browser, 而VP8/VP9则没有这个顾虑。

我们把他加上:

配置:

./configure --target-os=linux --prefix=/home/caozilong/Workspace/ffmpeg/ffmpeg-install --arch=x86_64 --disable-doc --enable-libx264 --enable-libmp3lame --enable-libopus --enable-debug=3 --extra-cflags="" --extra-ldflags="" --enable-gpl --enable-libvpx --enable-encoder=libvpx_vp8 --enable-encoder=libvpx_vp9 --enable-decoder=vp8 --enable-decoder=vp9 --enable-parser=vp8 --enable-parser=vp9

编译安装,查看新的FFMPEG是否支持VP8/VP9的命令是:

ffmpeg -codecs|grep vp9

可以看到VP9解码器和编码器都已经支持,而且支持不止一种,其中的vp9很可能(我没分析代码,不确定)就是ffmpeg编写的FFVP9解码器,它比Google自己开发的还要快,VP9是Google主导开发的下一代开源视频编解码器,压缩效率比H264高一倍,是私有编解码器H265的竞争对手。FFvp9声称在不同机器上其解码速度比Google开发的快25~50%,其多线程性能有显著改进。这一结果并不出人意料,FFmpeg开发的VP8解码器也比Google的快。

重新编译,将视频转码的命令是:

 ffmpeg -i /home/caozilong/Workspace/video/movie.mp4  -vcodec libvpx-vp9 -b:v 3M vp9movie_libvpx.mp4

通过mediainfo查看转码成功

ffplay可以正常播放:


结束!

在Ubuntu 18.04上安装ffmpeg,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了必要的编译工具和依赖项。你可以使用以下命令安装它们: ```shell sudo apt-get update sudo apt-get install build-essential ``` 2. 下载ffmpeg的源代码。你可以在官方网站或者其他可信的资源中找到最新版本的源代码。 3. 解压下载的源代码文件。你可以使用以下命令进入解压后的文件夹: ```shell cd ffmpeg-<version> ``` 4. 配置和编译ffmpeg。你可以按照以下命令依次执行: ```shell ./configure make sudo make install ``` 5. 安装完成后,你可以通过以下命令检查ffmpeg是否成功安装: ```shell ffmpeg -version ``` 如果你想卸载或重新安装ffmpeg,你可以按照以下步骤进行操作: 卸载ffmpeg: 1. 删除相关的软链接: ```shell sudo rm /usr/bin/ffmpeg sudo rm /usr/bin/ffprobe ``` 2. 清空环境变量中修改的地方并更新: ```shell sudo ldconfig ``` 重新安装ffmpeg: 1. 如果你需要更新、回退或增加库支持,你可以按照以下步骤进行操作: - 删除ffbuild目录下带"config"字段的文件:`rm ffmpeg-<version>/ffbuild/config` - 删除相关的软链接: ```shell sudo rm /usr/bin/ffmpeg sudo rm /usr/bin/ffprobe ``` - 重新编译和安装ffmpeg: ```shell cd ffmpeg-<version> ./configure make sudo make install ``` - 配置ffmpeg依赖环境并更新环境变量: ```shell sudo nano /etc/ld.so.conf ``` 在打开的文件中添加ffmpeg所在的目录,保存并关闭文件。然后运行以下命令更新环境变量: ```shell sudo ldconfig ``` 通过以上步骤,你可以在Ubuntu 18.04上安装、卸载或重新安装ffmpeg。请根据你的需求选择相应的操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ubuntu 18.04 安装FFmpeg](https://blog.csdn.net/weixin_43804210/article/details/108198399)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Ubuntu 18.04 安装ffmpeg(支持GPU硬件加速)](https://blog.csdn.net/txf1931783593/article/details/128250457)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值