编译前准备

安装编译依赖

sudo apt-get update && sudo apt-get -y install \autoconf \automake \build-essential \cmake \git-core \libass-dev \libfreetype6-dev \libgnutls28-dev \libmp3lame-dev \libsdl2-dev \libtool \libva-dev \libvdpau-dev \libvorbis-dev \libxcb1-dev \libxcb-shm0-dev \libxcb-xfixes0-dev \meson \ninja-build \pkg-config \texinfo \wget \yasm \zlib1g-dev \libunistring-dev \libopus-dev

fdk-aac单独安装:

如果缺失fdk-aac
git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -i
./configure –enable-shared
make install -j8

如果报错:

/usr/bin/ld: /usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against `.rodata.str1.1’ can not be used when making a shared object; recompile with -fPIC

configure添加参数:–enable-shared还是解决不了的话,建议用cmake安装吧,不要在这上面浪费时间。

安装libvpx
tar xf libvpx-1.8.2.tar.gz
cd libvpx-1.8.2
./configure \--disable-examples \--enable-vp8 --enable-pic \--enable-shared --as=yasmmake -j8make install -j8
安装x265:

(1)安装依赖,使得支持hg命令下载libx265

sudo apt-get install mercurial
hg clone http://hg.videolan.org/x265

(2)进入./x265_2.9/build/linux目录

./make-Makefiles.bash
sudo make -j8 && sudo make install -j8
安装x264:

git clone git://git.videolan.org/x264.git

链接:https://pan.baidu.com/s/1nZamB6wsNJRQE1NWTJXmKg
提取码:1vkw

Linux下最简单编译步骤:

./configure --enable-shared --enable-static --disable-asm
make -j8
make install -j8

编译ffmpeg

下载源码:

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

进入源码目录

cd ffmpeg

配置编译选项
参考:如何将libavcodec也静态编译并可链接到.so中

sudo ./configure   \
--extra-libs="-lpthread -lm" \
--enable-shared \
--disable-static \
--enable-pic \
--prefix=/usr/local/ffmpeg \
--ld="g++" \
--enable-gpl \
--enable-gnutls \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-libxml2 \
--enable-nonfree

–enable-shared,–disable-static,–enable-pic,以上三项最好带上,避免其他以ffmpeg作为依赖的软件安装时发生这类报错:libavcodec.a(vc1dsp_mmx.o):针对符号`ff_pw_9‘的重定位R_X86_64_PC32。
如果之前安装过ffmpeg,要将其卸载干净,避免安装其他软件时总是链接到以前安装的库,导致反复安装几次依然找不到问题根源。特别注意/usr/lib/, /usr/local/lib/,安装软件寻找已安装的依赖库时默认这几个位置的优先级要更高,其中/usr/lib/> /usr/local/lib/,到这些位置把之前安装的库删掉。

精简版configure:

./configure --enable-shared --prefix=/usr/local/ffmpeg  # --prefix选项指出ffmpeg的安装路径

编译

    make -j12

安装

    sudo make install -j12

配置环境

1. 用以下命令查看软件所有的依赖库信息,可以看到有些依赖库已安装而有些依赖库找不到:

ldd ffmpeg


可以看到有好几个依赖库是没有的。

2. 用以下命令查找这些依赖库的位置:

find /usr -name 'libavdevice.so.59'

输出:/usr/local/ffmpeg/lib/libavdevice.so.59
再找一个:find /usr -name ‘libavfilter.so.8’
output: usr/local/ffmpeg/lib/libavfilter.so.8
可以看出这两个缺失的都在usr/local/ffmpeg/lib/中,说明安装的时候已经把相关库安装到系统了,但是启动软件后没有找到,接下来通过配置环境来解决这个问题。

3. 配置软件环境

sudo vim ~/.bashrc

添加以下内容:

export PATH="/usr/local/ffmpeg/bin:${PATH}"
export LD_LIBRARY_PATH="/usr/local/ffmpeg/lib:{LD_LIBRARY_PATH}"
source ~/.bashrc

检查是否安装完成

ffmpeg -version

ffmpeg安装过程记录相关推荐

  1. CV之detectron2:detectron2安装过程记录

    CV之detectron2:detectron2安装过程记录 detectron2安装记录 python setup.py build develop Microsoft Windows [版本 10 ...

  2. linux chrome 安装过程记录

    最近,由于公司需要做爬虫抓取一些新闻,在开发过程中,发现有些网站有一定的反爬措施,通过浏览器访问一切正常,通过其他方式,包括:curl,urlconnection 等,就算加入了cookie,agen ...

  3. 安卓模拟器安装过程记录 20200926

    安卓模拟器安装过程记录 20200926 使用的软件 网易MuMu模拟器-安卓模拟器-极速最安全 http://mumu.163.com/baidu/ 下载并安装 选择路径 在线下载并且安装 安装好后 ...

  4. ubuntu下安装PCL并测试(含视频安装过程记录)

    ☛☛ 视频安装过程记录 ☚☚ 原文章的标题为Ubuntu16.04下安装PCL1.7并测试(含视频安装过程记录),但我觉得随着时间的推移,版本会发生改变 1.更新源 sudo apt-get upda ...

  5. VPB安装过程记录-20200310

    VPB安装过程记录-20200310 内容概述 1.环境及版本 2.所需内容下载 3.总体配置路线 4.OSG安装过程 5.GDAL编译 6.VPB编译 内容概述 本文主要记录VPB配置过程及其中遇到 ...

  6. 北塔网管软件BTSO2.5安装过程记录

    北塔网管软件据说是同类比较好的,原来的BTIM系列好像停止更新了,用BTSO版本代替,叫智慧运维平台,据说有各种改进,先把安装过程记录下来,以备以后重装. BTSO分两个部分:平台服务器和注册服务器, ...

  7. 云服务器主控系统,NoKvm云主机管理系统主控面板安装过程记录

    老左平时接触网站运营和服务器云主机简单的运维处理比较多,且对于云服务器商家也仅仅停留在遇到和尝试使用的一些商家而已.未来在博客中也依旧保持这样的风格,只分享和接触过的商家,包括一些软件面板产品.对于服 ...

  8. OpenStack Train 安装过程记录(一):基础环境准备

    文章目录 规划 硬件配置 IP规划 修改 hosts 解析 挂载安装磁盘,配置本地源 安装基础服务 NTP 时间同步 安装 OpenStack 包 控制节点需要安装的服务 数据库 消息队列 Memca ...

  9. Ubuntu18.04 小米游戏本最早一代 双硬盘 安装 过程记录

    Ubuntu18.04 小米游戏本最早一代 双硬盘 安装 过程记录.踩了很多坑,折腾了无数次,总结一下,方便日后查阅. UEFI+GPT 新买了一个1T的西数SN550,779元.疫情期间,价格大涨, ...

最新文章

  1. VC++学习笔记(BITMAP与CBitmap的区别)
  2. 手写select,解决浏览器兼容性
  3. 2018-2019-1 20165226 《信息安全系统设计基础》第6周学习总结
  4. Netty关闭客户端
  5. 微积分31--微分学在几何上的应用
  6. 如何成批导入数据到 kitten编程猫 类型为列表的变量中
  7. elasticsearch 5.6.x单机环境构建(集成head插件和IK中文分词)
  8. php添加填空,PHP之preg_replace_callback(),将填空题的[[]]替换成______
  9. 企业网络高级技术-VTP中继协议(2)
  10. 动态编译和静态编译及Java执行
  11. 保险公司在线签名 html5,html5手写签名
  12. html扫雷源码js,js实现扫雷源代码.pdf
  13. 使用sqlmap进行SQL注入检测
  14. 中国最卷的公务员考试,挤满清北毕业生
  15. Python 自动关机小程序
  16. 计算机网络知识点之五
  17. 大学计算机作业互评评语简短,同学作业互评评语
  18. kubernetes dev client-go 输出资源
  19. 谷歌2014年中国区应届毕业生校园招聘B轮机试第一题——数独问题的解法(C++实现)
  20. 2016届阿里实习生java研发岗一面二面三面四面经验分享

热门文章

  1. fabric通过java怎么整合RS纠删码的实现
  2. w10能装inventor2019_Inventor2019下载
  3. Orin 调试GMSL camera遇到问题之MIPI CSI2 报文解析
  4. android 新闻功能列表,news: 用Android基本技术实现的新闻App
  5. python去除字符串中空格和特殊符号的方法
  6. 【精】EOS智能合约:system系统合约源码分析
  7. 雅思作文模板.html,雅思写作模板必看范文
  8. 防火墙软件Netfilter之包过滤技术(转)
  9. python基础——类型转换
  10. 安装 python cuda