开拓版本Ubuntu18.04(桌面版本),FFmpeg开拓源码为FFmpeg4.2。本次利用源码编译,安装,搭建均为静态库,也可以设置为动态库,根据自己的需求去设置就好了。本篇文章十分详细的安装过程,能够帮你节省大量的韶光。
如果有朋友要利用搭建win10下,ffmpeg+QT的环境,可以参考这篇文章。
手把手搭建FFmpeg的Windows环境

建议:最好利用源码的办法去编译,有2个缘故原由:
(1)避免以前的环境被毁坏。
(2)可以详细理解依赖库编译过程。
安装提醒:
(1)如果对编译和安装命令很熟习了,安装和编译的目录都是可以修正。如果不熟习,就和我建一样的目录。
(2)ubuntu下编译和安装的韶光和坑,比win上更多。
(3)关于各种哭和源码的连接,海内网可能上不了,须要在github和码云上找,为了确保大家能够顺利编译,这步我已经做了。
(4)ffmpeg也是须要依赖很多库,如aac,Xh264,Xh265,这些也是要编译、安装、配置。
(5)关于第三方库的学习,文章后面的章节,也给出了很详细的官方文档链接。
1.安装依赖库
(1)创建下载和安装目录
进入目录:cd ~
mkdir ffmpeg_src ffmpeg_build bin
ffmpeg_src:源码目录。
ffmpeg_build:安装目录,存放编译后的库文件。
bin:存储2进制文件,(ffmpeg,ffplay,ffpeobe,X264,X265等)。
如下图所示:
安装依赖库,如果不知道这些依赖库是干什么用,可以去百度。所有安装依赖库的命令如下:
把稳:如果是第一次或很多依赖库没有装,为了保险起见,建议直接全部安装。这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。如果没有安装依赖库,后面安装ffmpeg库,肯定会报错。特殊是这些库,如libass-dev,libsdl2-dev,libvorbis-dev等。
sudo apt-get update && sudo apt-get -y install \ autoconf \ automake \ build-essential \ cmake \ git-core \ libass-dev \ libfreetype6-dev \ libsdl2-dev \ libtool \ libva-dev \ libvdpau-dev \ libvorbis-dev \ libxcb1-dev \ libxcb-shm0-dev \ libxcb-xfixes0-dev \ pkg-config \ texinfo \ wget \ zlib1g-dev
如果涌现如下缺点,实行命令如下:
sudo dpkg --configure -a
把稳:如果在ubuntu18.04下涌现如下数据库缺点,可以不用理会,等待一会,跳过就可以,不影响后面的安装和编译:
2.安装其它依赖库:
本指南假定您要安装一些最常见的第三方库。每个小节为您供应安装该库所需的命令。如果不须要某些功能,则可以跳过干系小节(如果不须要),然后在FFmpeg中删除相应的./configure选项。如,跳过下面小节,然后从“ 安装FFmpeg”的命令中删除--enable-libvpx。
编译小技巧:如果要在多核系统中加快编译速率,可以在每个make命令(如make -j4)中利用-j选项。浸染是开启4个线程编译,提高编译速率。
把稳:针对以下每一步,如果在ubuntu18.04下涌现如下数据库缺点,可以不用理会,等待一会,跳过就可以,不影响后面的安装和编译。
2.1 NASM库安装
ffmpeg利用到了汇编程序,以是须要利用 NASM库。如果系统供应的库nasm版本>=2.13则可以直策应用命令进行安装。实行如下命令即可。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。
(1)sudo apt-get install nasm
把稳:如果碰到数据库缺点,等待一下子,可以直接跳过,不影响编译。该方法安装更加大略。
(2)利用NASM 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \tar xjvf nasm-2.14.02.tar.bz2 && \ cd nasm-2.14.02 && \ ./autogen.sh && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.2 Yasm 库安装
ffmpeg利用到了汇编程序,以是须要利用 Yasm 库。如果系统供应的库yasm版本>=1.2.0则可以直策应用命令进行安装。实行如下命令即可。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。
(1)sudo apt-get install yasm
(2)利用Yasm 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \tar xzvf yasm-1.3.0.tar.gz && \ cd yasm-1.3.0 && \ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \ make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.3 libx264 库安装
ffmpeg利用到了X264编解码,以是须要利用 libx264 库。如果你系统供应的 libx264-dev版本 ≥ 118 则可以利用命令直接安装。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置:--enable-gpl --enable-libx264。
更多H264信息和利用范例参考,如下地址:
https://trac.ffmpeg.org/wiki/Encode/H.264
H264如下界面:
(1)sudo apt-get install libx264-dev
安装界面如下:
(2)利用x264 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \git -C x264 pull 2> /dev/null || git clone --depth 1 https://gitee.com/mirrors_addons/x264.git && \cd x264 && \PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \PATH="$HOME/bin:$PATH" make && \make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.4 libx265库安装
ffmpeg利用到了H.265/HEVC编解码,以是须要利用 libx265 库。如果你系统供应的 libx265-dev版本 ≥ 68 则可以利用命令直接安装。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置:--enable-gpl --enable-libx265。
更多H265信息和利用范例参考,如下地址:
https://trac.ffmpeg.org/wiki/Encode/H.265
H265如下界面:
(1)sudo apt-get install libx265-dev libnuma-dev
安装界面如下:
(2)利用x265 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
sudo apt-get install mercurial libnuma-dev && \ cd ~/ffmpeg_sources && \if cd x265 2> /dev/null; then git pull && cd ..; else git clone https://gitee.com/mirrors_videolan/x265.git; fi && \cd x265/build/linux && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \PATH="$HOME/bin:$PATH" make && \make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.5 libvpx库安装
ffmpeg利用到了VP8/VP9编解码,以是须要利用 libx265 库。如果你系统供应的 libvpx-dev 版本 ≥ 1.4.0 则可以利用命令直接安装。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置:--enable-libvpx。
更多vpx信息和利用范例参考,如下地址:
https://trac.ffmpeg.org/wiki/Encode/VP9
vpx如下界面:
(1)sudo apt-get install libvpx-dev
安装界面如下:
(2)利用vpx 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git && \cd libvpx && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \ PATH="$HOME/bin:$PATH" make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.6libfdk-aac库安装
ffmpeg利用到了AAC编解码,以是须要利用 libfdk-aac 库。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置:--enable-libfdk-aac ( 如果你已经配置了 --enable-gpl则须要加上--enable-nonfree).。
更多AAC信息和利用范例参考,如下地址:
https://trac.ffmpeg.org/wiki/Encode/AAC
AAC如下界面:
(1)sudo apt-get install libfdk-aac-dev
安装界面如下:
(2)利用AAC 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \cd fdk-aac && \ autoreconf -fiv && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \ make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.7libmp3lame库安装
ffmpeg利用到了MP3编解码,以是须要利用 libmp3lame 库。如果你系统供应的libmp3lame-dev版本≥ 3.98.3则可以利用命令直接安装。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置:--enable-libmp3lame。
(1)sudo apt-get install libmp3lame-dev
安装界面如下:
(2)利用MP3 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \git clone --depth 1 https://gitee.com/hqiu/lame.git && \cd lame && \ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \ PATH="$HOME/bin:$PATH" make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.7libopus库安装
ffmpeg利用到了音频Opus编解码,以是须要利用 libopus 库。如果你系统供应的libopus-dev 版本≥ 1.1,则可以利用命令直接安装。有以下2种方法可以安装,选择下面一种即可。个人以为2种方法,(1)方法大略,(2)方法可以知道更详细安装过程。编译ffmpeg时配置::--enable-libopus。
(1)sudo apt-get install libopus-dev
安装界面如下:
(2)利用Opus 源码安装
如果利用(1)方法不能安装,那就利用源码安装。实行如下命令:
cd ~/ffmpeg_sources && \git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \cd opus && \ ./autogen.sh && \ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \ make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.8 按照补充库
安装AV1 视频编解码器,编译时配置:--enable-libaom:
Warning: libaom does not yet appear to have a stable API, so compilation of libavcodec/libaomenc.c may occasionally fail. Just wait a day or two for us to catch up with these annoying changes, re-download ffmpeg-snapshot.tar.bz2, and try again. Or skip libaom altogether.
我编译时,彷佛有些问题(紧张是源下载的问题),暂时不支持。如果大家有比较好用的源,可以推举给我,贴在评论区。
(1)源码安装
命令如下:
cd ~/ffmpeg_sources && \git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git && \mkdir -p aom_build && \ cd aom_build && \ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \ PATH="$HOME/bin:$PATH" make && \ make install
把稳:这里的“\”表示换行,如果不用脚本,直接输入命令,这个“\”是不须要。
2.9 按照补充库
在后面编译ffmepg时,报错了,须要安装以下这些库,这是必须要安装。
(1) sudo apt-get -y install libass-dev
安装界面如下:
(2)sudo apt-get -y install libvorbis-dev
安装界面如下:
把稳:如果编译FFmpeg缺什么库,就安装什么库,不必惶恐。
3.编译FFmpeg
ffmpeg编译命令如下,可以直接编译,如果在编译过程中,碰着缺点,如短缺一些库,可以直接跳转到2.9步骤,去办理问题。
cd ~/ffmpeg_sources && \wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 && \tar xjvf ffmpeg-4.2.1.tar.bz2 && \cd ffmpeg-4.2.1 && \PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree && \PATH="$HOME/bin:$PATH" make && \make install && \hash -r
以下步骤,是把命令命令解析,逐步去实行。
(1)下载ffmpeg源码,实行如下命令:
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2
(2)并在(1)步骤的同级目录,进行解压。实行如下命令:
tar xjvf ffmpeg-4.2.1.tar.bz2
(3)cd ffmpeg-4.2.1
实行这些命令,编译和安装。
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ --prefix="$HOME/ffmpeg_build" \ --pkg-config-flags="--static" \ --extra-cflags="-I$HOME/ffmpeg_build/include" \ --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ --extra-libs="-lpthread -lm" \ --bindir="$HOME/bin" \ --enable-gpl \ --enable-libass \ --enable-libfdk-aac \ --enable-libfreetype \ --enable-libmp3lame \ --enable-libopus \ --enable-libvorbis \ --enable-libvpx \ --enable-libx264 \ --enable-libx265 \ --enable-nonfree && \PATH="$HOME/bin:$PATH" make && \make install
开始编译,安装(这个韶光须要比较久,耐心等待),过程如下图所示:
安装命令如下:
编译过程如下图:
编译,安装完成,涌现如下界面:
实行命令:hash -r
实行命令界面如下:
然后重新登录系统或者在当前shell会话实行如下命令以识别新安装ffmpeg的位置:
(4) source ~/.profile
首先,在ffmpeg源码目录实行命令source ~/.profile。目录和实行命令,如下图:
界面如下:
然后,在源码目录下实行命令:./ffmpeg -version。目录和实行命令,可以不雅观察到配置命令和编译出来的库,如下图:
界面如下:
把稳:这个命令只是当前生效,如果须要永久生效,须要重启ubuntu系统。
现在已经完成编译和安装ffmpeg (also ffplay, ffprobe, lame, x264, & x265) 。该文档剩余章节紧张讲如何更新和删除ffmepg。
(5) 编译完成后,ffmpeg_build ffmpeg_sources bin目录下的文件。
在ffmpeg_sources源码目录下,涌现如下一些文件:
在ffmpeg_build目录下,涌现如下一些文件:
包括库、头文件,一些例程和文件。
编译出来的头文件
编译出来的库文件(这里只编译了静态库,如果须要动态库,可以自己设置)
在bin目录下,涌现如下一些可实行运用程序:
(6) 测试是否搭建成功
在自己创建的bin目录下,实行如下命令:
(1)./ffplay rtmp://202.69.69.180:443/webcast/bshdlive-pc
把稳:这个rtmp地址是公网地址,须要担保你的网络一定假如能够访问公网才行。如果有朋友的网络没问题可以访问,但是没有图像出来,比如提示如下缺点:Could not initialize SDL - Failed to connect to the Mir Server,可能是你的sdl库没有安装或者利用不是ubuntu桌面版本(桌面版本才可以),而是利用server版本。
精确的拉流测试结果:
如果能够涌现如下界面,就代表在ubuntu系统下搭建ffmpeg成功。就可以愉快的玩耍ffmpeg了。
(2)播放本地文件
实行如下命令:ffplay rtmp_h.flv
实行目录和命令,如下界面:
4.ffmpeg文档
如果以本地的办法利用ffmpeg文档,你须要这样做,实行命令如下:
echo "MANPATH_MAP $HOME/bin $HOME/ffmpeg_build/share/man" >> ~/.manpath
把稳:可能必须重启ubuntu系统,man ffmpeg才生效。
HTML 格式的文档位于,如下地址:
~/ffmpeg_build/share/doc/ffmpeg(值得负责研究)。
也可以直策应用在线文档,如下地址:
https://ffmpeg.org/documentation.html
在线文档界面如下:
5.总结
本节讲解了如何一步一步在ubuntu系统搭建ffmpeg开拓环境,该当是十分详细,可以帮大家在搭建的过程中节省很多韶光。在搭建过程中,也踩过一些坑,上面也有提到过。如果你碰到一些不同的问题,也可以在评论区留言,然后我们一起谈论。
本篇文章就分享到这里,希望能够帮助到大家。如果以为文章不错,欢迎关注,点赞,转发,收藏,评论区谈论。
关于项目的知识,后面也会在微信"大众年夜众号上更新,欢迎关注微信"大众号“记录天下 from antonio”