Ubuntu20.04 下编译安装 ffmpeg 和 ffplay
时间:2024-04-19 18:45:38 来源:网络cs 作者:焦糖 栏目:卖家故事 阅读:
Ubuntu20.04 下编译安装 ffmpeg 和 ffplay
一、下载源码包二、安装依赖库三、编译四、添加环境变量五、验证是否成功六、问题
一、下载源码包
1.1 官方下载链接:http://ffmpeg.org/download.html
最新版本为6.1,点击Download Source Code
下载即可 ,此时得到压缩包 ffmpeg-6.1.tar.xz
1.2 也可以查看所有版本
翻到最后为官方最新版本 http://www.ffmpeg.org/releases/ ;通过命令行下载。wget http://www.ffmpeg.org/releases/ffmpeg-6.1.tar.xz
1.3 下载完解压
tar -xvf ffmpeg-6.1.tar.xz
此时当前目录下得到了文件夹 “ffmpeg-6.1” 二、安装依赖库
官方有个指导文档,Ubuntu怎么使用FFmpeg:https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
安装ffplay需要的依赖,进入终端,执行以下命令:sudo apt-get update && sudo apt-get -y install \ autoconf \ automake \ build-essential \ cmake \ clang \ git-core \ libass-dev \ libfreetype6-dev \ libgnutls28-dev \ libmp3lame-dev \ libsdl2-2.0 \ libsdl2-dev \ libtool \ libva-dev \ libx11-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ libfdk-aac-dev \ libspeex-dev \ libx264-dev \ libx265-dev \ libnuma-dev \ meson \ xorg-dev \ ninja-build \ pkg-config \ texinfo \ wget \ yasm \ zlib1g-dev \ libunistring-dev
三、编译
3.1 安装 yasm
yasm
是汇编编译器,ffmpeg为了提高效率使用了汇编指令,如MMX和SSE等。所以系统中未安装 yasm
时,就会报错误。
# 安装ffplay需要的依赖sudo apt install yasm pkg-config libopencore-amrnb-dev libopencore-amrwb-dev
3.2 配置
进入文件夹ffmpeg-6.1
#进入源码文件夹cd ffmpeg-6.1#配置项./configure --prefix=/usr/local/ffmpeg --enable-debug=3 --enable-libmp3lame --enable-gpl --disable-static --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-postproc --enable-ffplay --enable-libx264 --enable-libxvid --disable-x86asm
3.3 编译安装
#时间较长 耐心等待make -j 4sudo make install
安装到了/usr/local/ffmpeg
cd /usr/local/ffmpeg/bin
ffmpeg
/ffprob
已经生成了,但是 ffplay
没有生成? 四、添加环境变量
4.1 修改环境变量
将ffmpeg的绝对路径添加到PATH
环境变量中,以让系统能找到ffmpeg的安装路径。 vim ~/.bashrc # 打开系统环境变量配置文件
4.2 在文件中添以下内容
export PATH="/usr/local/ffmpeg/bin:${PATH}" # 因为编译后的可执行文件都在/usr/local/ffmpeg/bin中export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:{LD_LIBRARY_PATH}" #共享库路径
4.3 设置生效
source ~/.bashrc
五、验证是否成功
5. 1 查看ffmpeg的版本
ffmpeg -version ffplay -version ffprobe -version
出现以上版本,则编译安装成功!!! 5.2 查看ffmpeg帮助文档
ffmpeg -h ffmpeg -h long ffmpeg -h full
5.3 卸载 ffmpeg
# 如果要卸载的话# cd ffmpeg-6.1/ 进入ffmpeg源码编译的路径 sudo make uninstall
六、问题
问题1:ffmpeg编译后为什么没有ffplay工具?
ffplay 编译主要依赖 sdl2环境(针对ffmpeg 3.x版本),未安装sdl2的情况下,不会自动生成关于ffplay的编译选项。
可以通过下面两个命令安装sdl2组件,dev后缀表示安装路径下会包含头文件及动态库等在开发环境下需要的文件SDL(Simple DirectMedia Layer)是一个跨平台的多媒体和游戏开发包,提供2D,音频,事件驱动,多线程和定时器等服务,它使用C语言写成,提供了多种控制图像、声音、输出的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。
sudo apt-get install libsdl2-2.0sudo apt-get install libsdl2-dev
生成Makefile文件后,打开ffmpeg源码目录下的 config.mak
文件,搜索CONFIG_FFPLAY关键字,可以看到 ffplay 对应的编译选项已由之前的[!CONFIG_FFPLAY=yes
]变成了[CONFIG_FFPLAY=yes
],前面的叹号已经去掉了 ./configure --prefix=/usr/local/ffmpeg --enable-sharedmake -j 4sudo make install
问题2:ERROR: libmp3lame >= 3.98.3 not found
解决:①官⽹下载mp3lame源码:https://sourceforge.net/projects/lame/②解压lame文件并到指定目录下tar -zxf lame-3.100.tar.gzcd lame-3.100/③进行配置./configure --prefix=/usr/local/ffmpeg --enable-shared④编译及安装make -j 4sudo make install
注:仅供学习参考,如有不足欢迎指正!
阅读本书更多章节>>>>本文链接:https://www.kjpai.cn/gushi/2024-04-19/160436.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!