首页 » Web前端 » ubuntuffmpegphp技巧_超具体手把手搭建在ubuntu系统的FFmpeg情形

ubuntuffmpegphp技巧_超具体手把手搭建在ubuntu系统的FFmpeg情形

访客 2024-12-08 0

扫一扫用手机浏览

文章目录 [+]

开拓版本Ubuntu18.04(桌面版本),FFmpeg开拓源码为FFmpeg4.2。
本次利用源码编译,安装,搭建均为静态库,也可以设置为动态库,根据自己的需求去设置就好了。
本篇文章十分详细的安装过程,能够帮你节省大量的韶光。

如果有朋友要利用搭建win10下,ffmpeg+QT的环境,可以参考这篇文章。

ubuntuffmpegphp技巧_超具体手把手搭建在ubuntu系统的FFmpeg情形

手把手搭建FFmpeg的Windows环境

ubuntuffmpegphp技巧_超具体手把手搭建在ubuntu系统的FFmpeg情形
(图片来自网络侵删)

建议:最好利用源码的办法去编译,有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”

标签:

相关文章

selinuxphperrors技巧_php设置缺点级别

php缺点级别设置在php.ini中可以设置做事器对缺点的报警级别。在默认情形下,php将报告除了关照之外的所有缺点。缺点报告级别...

Web前端 2024-12-10 阅读0 评论0

php反感笔试技巧_为什么轨范员都反感笔试

可能大多数程序员都讨厌笔试这个环节乃至反感这种公司,认为考的都是些根本,又有些偏门 在真实项目中又用不到的知识,完备没必要嘛,多聊...

Web前端 2024-12-10 阅读0 评论0