Ubuntu 18.04 手动编译安装 ffmpeg
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Ubuntu 18.04 手动编译安装 ffmpeg,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3953字,纯文字阅读大概需要6分钟。
内容图文
![Ubuntu 18.04 手动编译安装 ffmpeg](/upload/InfoBanner/zyjiaocheng/971/3608ad9c446a4698b4fdb7bc7b79353f.jpg)
ffmpeg 是一个由提供对视频、音频和其他多媒体流文件进行处理功能的库和程序构成的自由软件项目,其常被用于适用于不同格式的音频和视频的录影、转换和流处理等场合。这里记录在 Ubuntu 18.04 平台下安装 ffmpeg 的过程。( 注:ffmpeg 目前已经可以通过 apt 直接进行安装,见最后 )
安装过程
a.在 ffmpeg 官网上下载对应的安装压缩包,笔者使用的是 ffmpeg-4.1.tar.bz2 ,将其解压至用户主目录下。
tar -xvjf ffmpeg-4.1.tar.bz2 -C ~ //将文件解压缩至用户主目录
b.简单的安装过程在解压获得的 ffmpeg-4.1 目录中的 INSTALL.md 文件中有一定的描述,首先对编译安装环境进行配置。
./configure //检测当前的编译安装环境
此时可能会产生报错 "nasm/yasm not found or too old" ,这是由于 ffmpeg 中部分优化代码使用汇编编写,对应的编译过程需要使用汇编编译器,这里有两种选择,一种是在 ./configure 时使用 --disable-yasm 选项,最终获得是一个裁剪版本的 ffmpeg 工具集;另外一种是安装对应的汇编编译器,可使用下列命令进行安装。
sudo apt install yasm //安装 yasm 编译器
安装完成后,需要重新执行上述 ./configure 操作,再进行下一步操作。
c.正确的进行环境配置后,ffmpeg 会列出目前已经检测到的环境的情况,包括检测到的外部依赖库和将要生成的应用程序等,完整的应用程序套件包括 ffmpeg( 用于视频的转码 ),ffplay( 用于简单的视频播放和测试 )和 ffprobe( 用于查看文件格式 ),在配置的 programs 字段会有输出。此时可能会出现 ffmpeg 准备生成的应用程序中没有 ffplay 的情况,如下图所示。
这时可以查看一下对应的 External libraries 字段,看其中是否存在 SDL。
SDL是编译 ffplayer 所必须的外部库,而 Ubuntu 环境并不会对其默认安装,故而需要用户手动安装。这里注意,网上的一些大概五六年前的博客记录的是要安装 libsdl1.2-dev 的库,而实际上目前(2018) ffmpeg 已经支持 SDL2,用户可通过如下命令查看可以安装的 sdl 版本。
apt-cache search libsdl | grep libsdl //查看目前可安装的 sdl 库版本
这里选择安装的是 libsdl2-dev,使用 apt-install 安装。
sudo apt install libsdl2-dev //安装所需的 sdl 库
安装完成后,可以查看下 /usr/include 目录下是否含有对应的 SDL2 的库,确认安装过程成功,若上述目录不存在,在后续的编译过程可能会产生报错 "fatal error: SDL.h: No such file or directory" 。完成上述配置后,再进行 ./configure ,就可以在 External libraries 字段中发现对应的 sdl2 字段,对应的 Programs 字段下也会有 ffplay 了。
d.通过 make 执行编译过程,编译完成后,在解压目录下就应该已经存在 ffmpeg 、ffplay 和 ffprobe 的可执行程序了。此时执行 sudo make install 命令完成安装过程。
make //编译产生对应的库文件和应用程序 sudo make install //安装上述编译结果,某些操作需要 root 权限,故而使用 sudo
注意:上述安装过程仅编译了最基本的 ffmpeg 功能,并没有包括所有 ffmpeg 支持的编码格式等内容,用户在编译时需要根据自己的需要对编译时的参数进行调整。
可能问题
(1)手动编译获得的 ffmpeg 在使用时可能出现以下错误
Unrecognized option 'crf'. Error splitting the argument list: Option not found
以及
Unrecognized option 'preset'. Error splitting the argument list: Option not found
这常见于在使用 ffmpeg 时使用到了 libx264,但在实际的编译过程中并有指定编译 libx264 参数,默认不会编译这一部分组件,从而产生报错。解决方案可以是直接通过命令行安装最新版本的 ffmpeg 或者通过指定对应参数的方式重新编译 ffmpeg.重新编译的参数具体可以参考 Compile FFmpeg for Ubuntu, Debian, or Mint。
若想要使用 apt 安装 ffmpeg ,可以进入 ffmpeg 源码目录,通过 make uninstall 卸载之前安装的手动编译版本的 ffmpeg.之后通过 apt 命令安装 ffmpeg。
sudo apt install ffmpeg //通过 apt 安装 ffmpeg
参考:ffmpeg: Unrecognized option 'crf'. Error splitting the argument list: Option not found
(2)在通过 apt 安装 ffmpeg 后,在使用时可能会出现报错。这是由于手动编译安装的 ffmpeg 安装在 /usr/local/bin/ 目录下,而通过 apt 安装的 ffmpeg 位于 /usr/bin 目录下。在卸载手动安装的 ffmpeg 后上述应用程序信息并没有直接更新,故而产生了以下报错。
bash: /usr/local/bin/ffmpeg: No such file or directory
解决方式:对于终端或图像界面,均可通过重新启动的方式刷新上述可能的更新信息,从而可以正常使用。在命令行环境下,也可以直接通过命令 hash -r 刷新信息。
参考:why ffmpeg command producing error in Ubuntu terminal?
内容总结
以上是互联网集市为您收集整理的Ubuntu 18.04 手动编译安装 ffmpeg全部内容,希望文章能够帮你解决Ubuntu 18.04 手动编译安装 ffmpeg所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。