ffmpeg最新5.1.6版本源码安装

一、编译安装需要的开源编码格式:

首先在编译安装这些开源编码格式之前,我们要明白为啥需要他们:

  • aac
  • x264
  • x265

为啥需要呢?如果你对ffmpeg稍微了解的话,ffmpeg本身是一个框架,自身默认并没有支持这三种编码格式,所以需要我们手动添加来支持!

ok,明白了这个之后,我们开始来下载这三个开源编码格式源码包:

1、编译aac:

aac下载链接:

wget https://sourceforge.net/projects/opencore-amr/files/fdk-aac/fdk-aac-2.0.2.tar.gz

开始编译

./configure --prefix=/usr/local/ffmpeg/ --enable-shared
make -j8 && make install

这里我把编译出来的东西都放在/usr/local/ffmpeg/,而且这里只编译动态库出来;大家按照上面两个步骤操作就行。

最终编译出来的动态库,就放在/usr/local/ffmpeg/lib下面,头文件在/usr/local/include下面。

2、 编译x264:

x264下载链接:

wget http://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20191024-2245-stable.tar.bz2

开始编译:

./configure  --prefix=/usr/local/ffmpeg --enable-static --enable-pic
make -j8 && make install

这里把编译出来的东西同样放在路径/usr/local/ffmpeg,而且编译的是静态库。

注意:这里你第一次安装的话,会报错nasm版本过低,这个时候你要重新下载nasm源码安装编译

这里我给大家nasm的安装步骤;首先是nasm的下载链接:

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2

编译步骤:

./configure
make -j8 && make install

ok,这个操作就比较简单,你按照这个操作就行;第一次安装x264的话,通过重新安装nasm,是可以解决报错的,然后我们接着来安装x264。

3、编译x265:

x265下载链接:

wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.tar.gz

编译步骤:

cd x265_3.2/build/linux/
./make-Makefiles.bash
make -j8 && make install

刚开始大家采用模式安装到/usr/local/目录下了,我们可以结合情况修改安装路径或者将对应的动态库拷贝制定的路径下/usr/local/ffmpeg,x265编译出来的库和头文件默认分别放在/usr/local/lib和/usr/local/include路径下!

二、最新ffmpeg源码编译安装

这里我们用gitte上的源码,github上的下载会有点慢,或者可以自己下载安装包(ffmpeg下载)

git clone https://gitee.com/mirrors/ffmpeg/

然后开始编译:

./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-pthreads --enable-libx264 --enable-libx265 --enable-libfdk-aac

make -j8 && make install

我们就是手动把aac、x264、x265编码格式给强制打开,这里也提一下其他enable的作用:

  • --enable-pthreads:启用pthreads(多线程)(默认关闭,可能会有线程安全问题)
  • --enable-gpl:允许使用GPL(默认关闭)
  • --enable-shared :构建共享库(默认关闭)
  • --enable-version3:升级GPL到版本3(默认:关闭)
  • --enable-nonfree:允许使用非免费的代码, 产生的库和二进制程序将是不可再发行的
  • --prefix=/usr/local/ffmpeg:把ffmpeg编译出来的东西都放在这个路径下去

我们发现找不到libfdk_aac,那怎么解决呢,问题出在找不到它路径,所以我们配置一下环境变量:

vim ~/.bashrc
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig"

然后退出,执行一下source ~/.bashrc使其生效。为什么我们这里要这样操作,这里主要通过下面这个里面fdk-aac.pc这个文件去定位fdk-aac。

这个时候再执行刚才的那个配置,就可以解决这个问题,如果后期遇到类似的问题,都可以参考这种方法去解决,核心是要找到你编译出来的.pc后缀对应的文件就行:

这里也配置一下环境变量:

vim /etc/profile

修改后生效指令
souce /etc/profile

export PATH="$PATH:/usr/local/ffmpeg/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/ffmpeg/lib"

这个时候,我就可以在任何终端路径查看ffmpeg的版本了:

ffmpeg -version
相关推荐
PlumCarefree15 小时前
基于鸿蒙API10的RTSP播放器(五:拖动底部视频滑轨实现跳转)
华为·ffmpeg·音视频
LuckyInn15 小时前
从安装ffmpeg开始,把一个视频按照每秒30帧fps剪切为图片
ffmpeg·音视频
cuijiecheng201817 小时前
FFmpeg源码:skip_bits、skip_bits1、show_bits函数分析
ffmpeg
__Destiny__21 小时前
视频格式转为mp4(使用ffmpeg)
ffmpeg·视频编解码
<Sunny>21 小时前
SDL 2.0视频数据渲染到窗口上播放流程
ffmpeg·音视频
PlumCarefree1 天前
USB摄像头视频流转RTSP流
图像处理·ffmpeg·音视频·媒体·视频编解码
PlumCarefree1 天前
基于鸿蒙API10的RTSP播放器(八:音量和亮度调节功能的整合)
华为·ffmpeg·音视频·harmonyos
源之缘-OFD先行者1 天前
ffmpeg实现视频的合成与分割
ffmpeg·音视频
一尺丈量1 天前
ffmpeg硬件解码一般流程
c++·人工智能·ffmpeg·cuda·硬件解码
cuijiecheng20182 天前
音视频入门基础:AAC专题(5)——FFmpeg源码中,判断某文件是否为AAC裸流文件的实现
ffmpeg·音视频·aac