本文主要介绍Linux 系统下如何编译Ffmpeg,编译环境是Ubuntu 16.04,Ffmpeg版本是3.4.2。Windows环境

下如何编译ffmpeg前面有博文介绍,也录有视频,感兴趣的同学查可以看我之前写的博文,视频可以从群里

下载。与Windows下编译不同,Linux下编译ffmpeg相对简单很多。下面具体介绍编译步骤:

1.下载源码

源码地址是http://ffmpeg.org/download.html,注意我们需要时源码,不是编译好的可执行文件。我们直接点击

如图所示页面上的Download按钮即可下载源码。

图一 ffmpeg下载界面

二.编译

解压下载下来的压缩包,打开命令行终端并跳转到解压后的目录,直接执行如下配置命令。

./configure --enable-shared  --prefix=/home/wgg/ffmpeg

该命令配置ffmpeg编译选项,--enable-shared 表示需要生成动态库 --prefix后面跟将来

编译生成的库文件生成路径。

首次configure 会提示yasm未安装错误,处理这个问题很简单,直接安装asm即可,具体的

方法是 在命令行终端执行sudo apt-get install ysam。

配置完成后在命令行终端执行 make 进行编译,编译完成后,执行make install 安装生成库文件

到指定的目录。

编译成功后会生成ffmpeg 动态库(.so)以及静态库(.a)还有三个可执行程序分别是ffmpeg ffprobe

以及ffserver。右键这三个文件属性看下文件大小,你会发现三个文件都很小都没有超过1M,实际上

这三个可执行文件要依赖编译生成的其他动态库,不能单独使用。如你希望生成可以单独使用的ffmpeg

可执行文件怎么办呢?很简单,修改配置命令就可以了,将./configure --enable-shared  --prefix=/home/wgg/ffmpeg

修改成./configure --enable-static --prefix=/home/wgg/ffmpeg-static 再次编译并安装,你会发现

ffmpeg ffprobe 以及ffserver 大很多。

如需交流课加群127903734群交流,后面会录一个视频教程,可以关注我在爱奇艺上发布的视频信息。

ubuntu下编译原生ffmpeg的更多相关文章

  1. Ubuntu下编译Bilibili/ijkplayer

    在做Android客户端视频播放器的过程中熟悉ijkplayer.他在视频支持协议上要比Android原生的mediaplayer做的要好.因此,自己也基于Bilibili/ijkplayer的重新编 ...

  2. ubuntu下编译VLC

    ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...

  3. 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer

    一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...

  4. ubuntu下编译caffe

    Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...

  5. 在Ubuntu下编译wpa_supplicant

    最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是 ...

  6. 在Ubuntu下编译Assimp库

    在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...

  7. ubuntu下编译java程序

    ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...

  8. Ubuntu下编译SHTOOLS

    SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在 ...

  9. 在Ubuntu下编译hadoop2.5.x

    在Ubuntu下编译hadoop2.5.x 参考博客:http://www.aboutyun.com/thread-8130-1-1.html 1 下载hadoop源码: (1) http://www ...

随机推荐

  1. ALICTF2014 EvilAPK4脱壳分析

    相关文件可以在下面链接中下载: http://pan.baidu.com/s/1sjpvFy9 1 简述 该apk使用libmobisec.so函数实现对dex的解密还原.真正的dex为assets目 ...

  2. 【转】Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

    目录 学习资料 简介 安装Node.js npm简介 开发工具 Sublime Node.js开发环境配置 扩展:安装多版本管理器 学习资料 1.深入浅出Node.js http://www.info ...

  3. JavaScript 的新特性:类的 #private 字段

    这是什么,如何使用,为什么需要? 一边听“Noise Pollution” —— Portugal. The Man,一边阅读本文简直就是享受 JavaScript 标准的第二阶段(Stage 2)加 ...

  4. 神奇的矩阵(bzoj 2396)

    Description 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. Input 题目可能包含若干组数据.    对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为 ...

  5. 虚拟 ​router 原理分析

    上一节我们创建了虚拟路由器“router_100_101”,并通过 ping 验证了 vlan100 和 vlan101 已经连通. 本节将重点分析其中的原理. 首先我们查看控制节点的 linux b ...

  6. Codevs 1060 搞笑世界杯

    1060 搞笑世界杯 时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond 题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰, ...

  7. VIM 的 modeline 和 autocmd

    modeline vim的modeline可以让你针对每个文件进行文件级别的设置,这些设置是覆盖当前用户的vimrc中的设置的.当vim打开一个包含了vim modeline注释行的文件时,会自动读取 ...

  8. C# List排序,附加使用Linq排序

    首先先介绍一下平时最常用的几种排序方法. 第一种:实体类实现IComparable接口,而且必须实现CompareTo方法 实体类定义如下: class Info:IComparable { publ ...

  9. ios圆角优化-不掉帧

    因网络图片加载用的是SDWebImage所以下面以sd加载图片为例 //普通的加载网络图片方式(已不能满足需求,需要改进) [self sd_setImageWithURL:url placehold ...

  10. visual studio 插件 resharper 使用指南

    vs虽然号称是宇宙第一ide,但在智能提示和代码分析方面还是要略逊于jetbrains系列的ide.如果将jetbrains系列ide的智能提示和代码分析集成到vs中,对vs来说无异于如虎添翼.res ...