鲁嵩 發表於 2021-3-10 09:36:00

CentOS安装ffmpeg+h264

<div id="MathJax_Message" style="display: none"></div><h1 id="wiz-toc-0-1364349110">CentOS安装ffmpeg+h264</h1>

<h1 id="wiz-toc-1-864972922">前言</h1>

<p>坑!坑!坑! 全是坑。</p>

<p>本文安装系统环境为CentOS7.2。我这里提供安装所需的四个源码包,均需要编译安装。所有组件最好都安装最新的稳定版,或者下载使用同代一版本。</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093555453-1907050257.png" alt="" title=""></p>

<p>链接:https://pan.baidu.com/s/1J6woNlr78K01wjvFTwRcpA<br>
提取码:w5zu </p>

<h1 id="wiz-toc-2-198818200">一、安装依赖</h1>

<p>安装一些所需要的基础命令,以及编译工具。</p>

<div data-mode="bash"><pre><code>yum -y install gcc automake autoconf libtool make gcc gcc-c++ bzip2 xz</code></pre></div>

<h1 id="wiz-toc-3-1137916812">二、安装nasm</h1>

<p>各版下载本地址:Index of /pub/nasm/releasebuilds</p>

<h2 id="wiz-toc-4-1450266315">2.1 上传nasm源码包并解压</h2>

<p>上传源码包至<code>/usr/local</code>目录下,并解压</p>

<div data-mode="bash"><pre><code>#解压
# cd /usr/local
# tar xvf nasm-2.13.tar.gz</code></pre></div>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093556427-20617243.png" alt="" title=""></p>

<h2 id="wiz-toc-5-1447321938">2.2 编译安装nasm</h2>

<div data-mode="bash"><pre><code>#进入解压后的目录
# cd /usr/local/nasm-2.13
#配置编译,不需要指定编译位置,保持默认即可
# ./configure
# make
# make install</code></pre></div>

<p>编译安装完成后,会在<code>/usr/local/bin</code>下生对应的成可执行程序</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093557278-818994902.png" alt="" title=""></p>

<h1 id="wiz-toc-6-620189884">三、安装yasm</h1>

<p>各版本下载地址:Index of /projects/yasm/releases/</p>

<h2 id="wiz-toc-7-1201952311">3.1 上传yasm源码包并解压</h2>

<p>上传源码包至<code>/usr/local</code>目录下,并解压</p>

<div data-mode="bash"><pre><code>#解压
# cd /usr/local
# tar zxvf yasm-1.3.0.tar.gz </code></pre></div>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093558276-1835224237.png" alt="" title=""></p>

<h2 id="wiz-toc-8-1069954846">3.2 编译安装yasm</h2>

<div data-mode="bash"><pre><code>#进入解压后的目录
# cd /usr/local/yasm-1.3.0
#配置编译,不需要指定编译位置,保持默认即可
# ./configure
# make
# make install</code></pre></div>

<p>编译安装完成后,会在<code>/usr/local/bin</code>下生成对应的可执行程序</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093559382-1465528191.png" alt="" title=""></p>

<h1 id="wiz-toc-9-654168137">四、安装x264</h1>

<p>这个一定要先于ffmpeg安装,否则会安装报错,或者在使用中报错。</p>

<p>官网下载地址:https://www.videolan.org/developers/x264.html</p>

<h2 id="wiz-toc-10-1593864141">4.1 上传x264源码并解压</h2>

<p>上传x264源码包至<code>/usr/local</code>目录下,并解压</p>

<div data-mode="bash"><pre><code>#解压
# cd /usr/local
# tar -jxvf x264-master.tar.bz24.2 </code></pre></div>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093600416-399573505.png" alt="" title=""></p>

<h2 id="wiz-toc-11-1450494618">4.2 编译安装x264</h2>

<div data-mode="bash"><pre><code>#进入解压后的目录
# cd /usr/local/x264-master
#编译安装,这里之指定安装路径,方便ffmpeg安装时加载x264
# mkdir /usr/local/x264
# ./configure --prefix=/usr/local/x264 --enable-shared --enable-static --disable-asm
# make
# make install</code></pre></div>

<p>编译安装完成后,会在<code>/usr/local/x264</code>目录下生成相关文件</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093601619-1964928793.png" alt="" title=""></p>

<h2 id="wiz-toc-12-837554128">4.3 添加环境变量</h2>

<p>在<code>/etc/profile</code>文件末尾添加关于x264的环境变量</p>

<div data-mode="bash"><pre><code># vim /etc/profile
#在文件末尾添加
export PATH=/usr/local/x264/bin:$PATH
export PATH=/usr/local/x264/include:$PATH
export PATH=/usr/local/x264/lib:$PATH</code></pre></div>

<h1 id="wiz-toc-13-316763498">五、安装ffmpeg</h1>

<p>各版本下载地址:http://ffmpeg.org/download.html</p>

<h2 id="wiz-toc-14-1352291127">5.1 上传ffmpeg源码包并解压</h2>

<p>上传ffmpeg源码包至<code>/usr/local</code>目录下,并解压</p>

<div data-mode="bash"><pre><code>#解压
# cd /usr/local
# xz -dffmpeg-4.3.1.tar.xz
# tar xvf ffmpeg-4.3.1.tar</code></pre></div>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093602547-908105624.png" alt="" title=""></p>

<h2 id="wiz-toc-15-1068301544">5.2 编译安装ffmpeg</h2>

<div data-mode="bash"><pre><code>#进入解压后的目录
# cd /usr/local/ffmpeg-4.3.1
#编译安装,也指定安装路径,方便后期管理
# mkdir /usr/local/ffmpeg
# ./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-yasm --enable-libx264 --enable-gpl --enable-pthreads --extra-cflags=-I/usr/local/x264/include --extra-ldflags=-L/usr/local/x264/lib
# make -j4
# make install</code></pre></div>

<h2 id="wiz-toc-16-1130334389">5.3 修改配置文件</h2>

<pre><code>`/etc/ld.so.conf` 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。默认情况下,编译器只会使用`/lib`和`/usr/lib`这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定`--prefix`会将库安装在`/usr/local`目录下,而又没有在文件`/etc/ld.so.conf`中添加`/usr/local/lib`这个目录。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。
</code></pre>

<p>对于此种情况有2种解决办法:</p>

<ol class="wiz-list-level1">
<li>在用源码安装时,用<code>--prefix</code>指定安装路径为<code>/usr/lib</code>。这样的话也就不用配置<code>PKG_CONFIG_PATH</code></li>
<li>直接将路径<code>/usr/local/lib</code>路径加入到文件<code>/etc/ld.so.conf</code>文件的中。在文件<code>/etc/ld.so.conf</code>中末尾直接添加:<code>/usr/local/lib</code>(推荐该方法!)</li>
</ol>

<div data-mode="bash"><pre><code># vim /etc/ld.so.conf
#在文件末尾加上
/usr/local/ffmpeg/lib
/usr/local/lib
/usr/local/x264/lib
#让配置生效
# ldconfig</code></pre></div>

<h2 id="wiz-toc-17-431497879">5.4 设置软连接</h2>

<p>设置软连接和设置环境变量目的是一样的,这里我采用设置软连接</p>

<div data-mode="bash"><pre><code># ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/local/bin/
# ln -s /usr/local/ffmpeg/bin/ffprobe /usr/local/bin/ </code></pre></div>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093603602-1072923199.png" alt="" title=""></p>

<p>设置环境变量的方法我也加上,<strong>设置环境变量和设置软连接二选其一即可</strong></p>

<p>使用 vim /etc/profile命令打开profile文件,在文件末添加环境变量:</p>

<div data-mode="bash"><pre><code># vim /etc/profile
#在文末添加以下内容

#set ffmpeg environment
PATH=$PATH:/usr/ffmpeg/bin
export PATH</code></pre></div>

<h1 id="wiz-toc-18-1205870167">六、测试安装成果</h1>

<p>一个简单的命令查看安装是否成功,<code>ffmpeg -version</code>查看输出结果。</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093604739-858894913.png" alt="" title=""></p>

<h1 id="wiz-toc-19-610755022">七、踩坑</h1>

<p>7.1安装顺序,严格按照本文顺序安装,<strong>x264一定要在安装ffmpeg之前安装</strong>。</p>

<p>7.2 error while loading shared libraries: libx264.so.138</p>

<pre><code>报错: ./ffmpeg: error while loading shared libraries: libx264.so.138: cannot open shared object file: No such file or directory
</code></pre>

<p>出现这个错误参考本文5.3,可能是so库没有正常加载。在<code>/etc/ld.so.conf</code>中添加<code>/usr/local/x264/lib</code>,添加后保存文件执行命令<code>ldconfig</code>使命令生效</p>

<p><img src="https://img2020.cnblogs.com/blog/1602692/202103/1602692-20210310093605781-1568637113.png" alt="" title=""></p>

<p>7.3 error while loading shared libraries: libavdevice.so.57</p>

<pre><code>ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file: No such file or directory
</code></pre>

<p>一般情况下出现<code>.so.xxx</code>找不到的问题,要么真的没有这个,要么是安装了但是系统找不到,参照5.3。</p>

<p>暂时先写这么多,以后碰到持续更新。</p><br><br>
来源:https://www.cnblogs.com/lcxhk/p/14509648.html
頁: [1]
查看完整版本: CentOS安装ffmpeg+h264