1. 安装依赖关系

$ sudo apt-get update
$ sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev

2. 源码安装 yasm

x264和FFmpeg使用的x86优化的汇编器。非常推荐不然编译极慢!

下载链接:http://yasm.tortall.net/Download.html

下载源码版本:yasm-1.3.0.tar.gz

编译安装

$ cd ~/ffmpeg_sources
$ wget http://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

3. 源码安装 NASM

$ sudo apt install nasm

$ cd ~/ffmpeg_sources
$ wget http://www.nasm.us/pub/nasm/releasebuilds/2.13.01/nasm-2.13.01.tar.bz2
$ tar xjvf nasm-2.13.01.tar.bz2
$ cd nasm-2.13.01
$ ./autogen.sh
$ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
$ PATH="$HOME/bin:$PATH" make
$ make install

4. 源码安装libx264

$ cd ~/ffmpeg_sources
$ wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
$ tar xjvf last_x264.tar.bz2
$ cd x264-snapshot*
$ PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-shared --disable-opencl
$ PATH="$HOME/bin:$PATH" make
$ make install

5. 源码安装x265

$ sudo apt-get install cmake mercurial
$ cd ~/ffmpeg_sources
$ hg clone https://bitbucket.org/multicoreware/x265
$ cd ~/ffmpeg_sources/x265/build/linux
$ PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
$ make
$ make install

6. 源码安装 libmp3lame

$ cd ~/ffmpeg_sources
$ wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
$ tar xzvf lame-3.99.5.tar.gz
$ cd lame-3.99.5
$ ./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --enable-shared
$ make
$ make install

7. 源码安装 libopus

$ cd ~/ffmpeg_sources
$ wget https://archive.mozilla.org/pub/opus/opus-1.1.5.tar.gz
$ tar xzvf opus-1.1.5.tar.gz
$ cd opus-1.1.5
$ ./configure --prefix="$HOME/ffmpeg_build" --enable-shared
$ make
$ make install

8. 源码安装 pkg-config

$ wget https://pkg-config.freedesktop.org/releases/pkg-config-0.29.2.tar.gz

$ tar -xzf pkg-config-0.29.2.tar.gz
$ cd pkg-config-0.29.2
$ ./configure --with-internal-glib
$ make
$ sudo make install

8. 源码安装 ffmpeg

版本:ffmpeg-4.1.tar.bz2

$ tar -xjf ffmpeg-4.1.tar.bz2
$ cd ffmpeg-4.1

配置脚本:config.sh

#!/bin/bash
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" \
--bindir="$HOME/bin" \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping \
--enable-gpl \
--enable-pthreads \
--enable-libfaac \
--enable-libmp3lame \
--enable-libx264 \
--enable-libx265 \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-shared make -j 4
make install

Linux 下源码编译FFMEG的更多相关文章

  1. Linux下源码编译安装rpy2

    R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这 ...

  2. Linux 下源码编译安装 vim 8.1

    前言 目前 linux 的各个发行版基本上都是带了一个 vi 编辑器的,而本文要说的 vim 编辑器对 vi 做了一些优化升级,更好用.当我们需要远程操作一台 linux 服务器的时候,只能使用命令行 ...

  3. 在Linux下源码编译安装GreatSQL/MySQL

    欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 本 ...

  4. 1、Linux下源码编译安装PostgreSQL

    操作系统:Centos7 说明:postgresql必须在postgres用户下初始化数据库和启动,否则报错. PostgreSQL的特性 PostgreSQL是一种几乎可以运行在各种平台上的免费的开 ...

  5. Linux下源码编译安装PostgreSQL数据库

    我使用的Postgres的源码版本为 postgresql-9.3.5.系统为 CentOS6.5 ,是64位. 下载以后直接阅读其中的 README然后阅读其中的INSTALL,按照其中将的步骤做就 ...

  6. Linux下源码编译Mysql5.7

    1.安装依赖包 yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgc ...

  7. Linux下源码编译php7

    1.安装依赖包 yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng ...

  8. Linux下源码编译安装MySql,centeros7

    1. 安cmake工具 # yum install -y cmake 2. 创建mysql用户  #useradd -s /sbin/nologin mysql  //设置为非登陆用户(安全) 3. ...

  9. linux下源码编译安装mysql

    1.安装依赖的包: yum install -y gdb cmake ncurses-devel bison bison-devel 2.创建mysql安装目录和数据文件目录 mkdir -p /us ...

随机推荐

  1. call(),apply()和bind()的区别

    javascript中的每一个Function对象都有一个apply()和一个call()方法,它们的语法分别是: /*apply()方法*/ function.apply(thisObj[, arg ...

  2. [原创]SecureCRT终端软件连接VMware Workstation Pro虚拟机

    Step1:检查主机的桥接有没有禁用 Step2:进入Ubuntu系统,进入到Ubuntu下,先查看Ubuntu虚拟机的IP配置,打开终端(Ctrl+Alt+T),通过ifconfig命令查看,可以看 ...

  3. ajax导致Echarts不显示饼图数据、柱状图数据只显示气泡的问题。

    1.ajax导致Echarts不显示饼图数据.柱状图数据只显示气泡的问题. ajax的同步.这个同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个aj ...

  4. Angular 任务列表页

    新建一个任务Module $ ng g m task 功能:项目列表显示,增加,修改,删除项目.邀请其它人员加入项目. 单一性原则:希望搭建多个组件,每个组件负责自己的功能. 一.task相关组件 $ ...

  5. 微信域名检测的C#实现

     背景:最近公司的公众号域名被封了,原因是公司网站被黑后上传了一个不符合微信规范的网页.所以...就进入了微信域名解封的流程. 百度微信域名解封发现很多微信域名检测的网站,还有Api:但是本人做微信公 ...

  6. java解析json的操作

    import java.io.FileNotFoundException; import java.io.FileReader; import com.google.gson.JsonArray; i ...

  7. Windows键盘钩子

    Runtime:VS2013 #include "stdafx.h" #include <windows.h> #include <conio.h> DWO ...

  8. Android进阶:一、日志打印和保存策略

    前言: 项目开始没有做好日志统计工作,每次有问题后端都得找前端对接,严重影响工作效率.最近特地在项目中加上日志保存策略,在此分享,供需要的人学习. 一.更详细的日志信息 既然决定自定义一个log,那我 ...

  9. unity打包exe中的资源管理

    给美术和产品用unity做一些exe工具,会频频遇到导入导出资源的情况. 首先所有的文件应该放在StreamingAssets文件夹下, 如果需要动态替换贴图,这样美术只要替换default.png就 ...

  10. (转载)Linux终端复用神器-Tmux使用

    Linux终端复用神器-Tmux使用 转载地址:https://blog.51cto.com/652465/2094738 Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于Open ...