转发自白狼栈:查看原文

关于ffmpeg的安装,有的人可能要折腾很久,甚至折腾一个礼拜,究其原因,基本都是编译安装惹的祸。

我们提供4种安装方式,最复杂的莫过于centos7上的编译安装。

  1. ffmpeg静态库下载安装
  2. 在mac上安装ffmpeg
  3. 在centos7上编译安装ffmpeg
  4. 使用docker安装ffmpeg

大家可以根据自己的喜好选择安装。

为什么说在 linux 上编译安装 ffmpeg 最复杂?因为编译之前我们要安装很多扩展库,每个人的环境不同,要安装的编解码库或多或少都有些区别。

linux下安装 ffmpeg,我们以 centos7 编译安装为例。

先看下系统环境

[root@localhost vagrant]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

1、安装依赖

yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel

如果安装依赖的过程中,报如下错误

File "/bin/yum", line 30except KeyboardInterrupt, e:

或者

updates                                                                                                                                                       | 2.9 kB  00:00:00File "/usr/libexec/urlgrabber-ext-down", line 28except OSError, e:

则优先看下默认的 python 是 2.x 的还是 3.x 的,如果是 3.x 的建议改成 2.x 的再试试。

2、安装一些必须的编解码库
1)编译 nasm,x264 依赖的汇编优化的库

cd /opt/ffmpeg
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
ln -s /opt/ffmpeg/nasm /usr/bin/nasm

2)编译 yasm,yasm 可以理解是 ffmpeg 依赖的汇编优化的库

cd /opt/ffmpeg
curl -O -L 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
ln -s /opt/ffmpeg/yasm-1.3.0/yasm /usr/bin/yasm

3)编译 libx264

cd /opt/ffmpeg
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install

有些小伙伴在编译 x264 的时候,可能会报错 Found no assembler, Minimum version is nasm-2.13, If you really want to compile without asm, configure with --disable-asm,这个就说明你电脑上还存在其他的太老的 nasm,或者我们在第一步创建的 nasm 你没有添加到环境变量中导致的,一定要确保 nasm -v 是我们第一步新安装的包。设置好之后,x264 就可以从 ./configure 这里继续安装了。

4)编译libx265

cd /opt/ffmpeg
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd cd x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install

5)编译libfdk_aac

cd /opt/ffmpeg
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

6)编译libmp3lame

cd /opt/ffmpeg
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
tar xzvf lame-3.100.tar.gz
cd lame-3.100
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install

7)编译libopus

cd /opt/ffmpeg
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

8)编译libvpx

cd /opt/ffmpeg
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install

如果 libvpx 的代码拉不下来,可以试试下面这种方式,其他步骤不变

wget  https://github.com/webmproject/libvpx/archive/refs/tags/v1.10.0.tar.gz
tar zxvf v1.10.0.tar.gz
cd libvpx-1.10.0

编译是个漫长的过程,到此我们已经成功了一半,下面我们编译安装今天的主角 ffmpeg

3、编译安装ffmpeg
下载最新的稳定包并开始编译安装

cd /opt/ffmpeg
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \n  --prefix="$HOME/ffmpeg_build" \n  --pkg-config-flags="--static" \n  --extra-cflags="-I$HOME/ffmpeg_build/include" \n  --extra-ldflags="-L$HOME/ffmpeg_build/lib" \n  --extra-libs=-lpthread \n  --extra-libs=-lm \n  --bindir="$HOME/bin" \n  --enable-gpl \n  --enable-libfdk_aac \n  --enable-libfreetype \n  --enable-libmp3lame \n  --enable-libopus \n  --enable-libvpx \n  --enable-libx264 \n  --enable-libx265 \n  --enable-nonfree
make
make install
hash -d ffmpeg
ln -s /opt/ffmpeg/ffmpeg/ffmpeg /usr/bin/ffmpeg

最后验证下是否安装成功

$ ffmpeg -version
ffmpeg version N-102343-g4d3474432f Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-44)
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
libavutil      57.  0.100 / 57.  0.100
libavcodec     59.  0.100 / 59.  0.100
libavformat    59.  0.100 / 59.  0.100
libavdevice    59.  0.100 / 59.  0.100
libavfilter     8.  0.101 /  8.  0.101
libswscale      6.  0.100 /  6.  0.100
libswresample   4.  0.100 /  4.  0.100
libpostproc    56.  0.100 / 56.  0.100

ffmpeg安装之linux编译安装相关推荐

  1. linux下编译安装gcc,Linux编译安装GCC 5.1.0

    Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了.2015年4月下旬GCC也出到了5.1.0版本,对于C++11/14也有了更好的支持了.因为最近在学习O ...

  2. linux下运行yolo,deepin(linux)编译安装yolo v4测试效果

    # 背景 五一放假的最后一天我也凑了个热闹,试一下新鲜出炉的yolo v4, 由于没有装CUDA和CUDNN,只试了一下在CPU上的速度和效果,电脑环境及编译依赖如下: * deepin 15.11桌 ...

  3. linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...

  4. linux libvpx编译安装,linux编译安装时常见错误解决办法

    **configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution** 复 ...

  5. Linux编译安装GCC-5.1.0

    2019独角兽企业重金招聘Python工程师标准>>> Linux编译安装GCC-5.1.0 Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是G ...

  6. linux编译安装nginx失败怎么办?排错思路及方法

    1.分析: nginx编译安装失败一般会出现在三个方面 编译环境安装不全 安装的时候参数出错 配置文件修改出错 2.编译环境安装不全 如果你的编译环境安装的不全,在你编译安装的时候可能会报错 [roo ...

  7. linux游戏编译,Linux编译安装开源3D赛车游戏Vdrift

    Linux编译安装开源3D赛车游戏Vdrift,跟大家分享 首先,去http://vdrift.net/ 下载源代码包,我下载的version是2009-6-15 然后解压vdrift-2009-06 ...

  8. Linux编译安装qt5.9,Linux CentOS7 安装 Qt 5.9.2

    Linux CentOS7 安装 Qt 5.9.2 参考链接 http://doc.qt.io/qt-5/linux.html sudo yum groupinstall "C Develo ...

  9. linux rsync yum安装,Linux安装yum安装rsync 、Linux编译安装最新版rsync

    Loading... # Linux安装yum安装rsync .Linux编译安装最新版rsync ## 针对CentOS采用 yum 安装 ### 安装 ``` yum install rsync ...

最新文章

  1. 002——php字符串中的处理函数(一)
  2. 使用 cf push 部署应用到 SAP BTP 时遇到错误消息 No domains exist for route
  3. linux thrift 安装目录,Linux下安装Thrift
  4. linux系统登陆问题,Linux之登陆问题
  5. Java 集合框架(List、Set、Map、Iterator、Stack、Properties)
  6. 即席和即兴_即兴说话小课堂
  7. UITextView 控件-IOS开发
  8. Spark:通过start-slaves.sh脚本启动worker报错:Permission denied
  9. linux常用知识命令
  10. js获取引用的css样式,js获取css样式方法
  11. C++的iostream标准库介绍+使用详解
  12. 旧主机改NAS最终成功的过程
  13. 深度学习数据增强方法总结
  14. 故障解决:发生系统错误 67 找不到网络名
  15. python伪装ip_Python爬虫:使用IP代理池伪装你的IP地址继续爬
  16. vue+Element表单验证+数字英文密码和手机号验证(详细)
  17. 内边距(padding)
  18. 【时间之外】面向监狱的编程?该学学网络安全法了(3)
  19. 王者荣耀转系统服务器繁忙,换手机党的福音,王者荣耀开启跨系统角色转移,但这些问题要注意...
  20. 锂电池充放电曲线、设置充电电流、检测TP4054的3种充电状态

热门文章

  1. Vue.js :使用LODOP打印表格文件
  2. 鹿晓亮:基于大数据云计算的语音识别深度平台
  3. C# linq left join
  4. 数据库根据经纬度查询离我最近的数据
  5. 《埃尔维斯与安娜贝尔》配色分享
  6. 张蔷《手扶拖拉机斯基》编舞动作分解
  7. 拖拉机服务器不稳定,手扶拖拉机机油指示不稳定现象分析
  8. aix的ps命令详解
  9. 想学习板绘?教你如何在电脑学习绘画!
  10. 南京市城镇居民基本医疗保险暂行办法实施细则