ubuntu下编译原生ffmpeg
本文主要介绍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的更多相关文章
- Ubuntu下编译Bilibili/ijkplayer
在做Android客户端视频播放器的过程中熟悉ijkplayer.他在视频支持协议上要比Android原生的mediaplayer做的要好.因此,自己也基于Bilibili/ijkplayer的重新编 ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- 开源播放器 ijkplayer (五) :Linux/Ubuntu 下编译ijkplayer
一.安装Git与yasm sudo apt-get install git sudo apt-get install yasm 二.下载和配置 SDK.NDK SDK一般开发时肯定都有的,NDK一般是 ...
- ubuntu下编译caffe
Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...
- 在Ubuntu下编译wpa_supplicant
最近在研究WiFi联盟的多屏互动协议Miracast,其中需要用到wpa_supplicant,编译中遇到了一些问题,经过一下午的折腾也都解决了,下面分享给各位. 一.编译需要用到三个库源码包,分别是 ...
- 在Ubuntu下编译Assimp库
在Ubuntu下编译Assimp库 怎样在Ubuntu下编译Assimp库?这是我曾经编译成功后做的笔记,供參考. 1.去以下的站点去下载Assimp库: http://assimp.sourcefo ...
- ubuntu下编译java程序
ubuntu下编译java程序 首先需要安装jdk,并配置好相应环境变量 下面以简单的HelloWorld为例 文件名为HelloWorld.java java代码: public class Hel ...
- Ubuntu下编译SHTOOLS
SHTOOLS是使用Fortran语言写的一个专门用于处理球谐函数的一个开源库,更多的介绍请猛戳这里,关于这个库的安装和使用,都在官网上有详细的说明,虽然很详细,但是编译的时候还是比较费劲,下面将我在 ...
- 在Ubuntu下编译hadoop2.5.x
在Ubuntu下编译hadoop2.5.x 参考博客:http://www.aboutyun.com/thread-8130-1-1.html 1 下载hadoop源码: (1) http://www ...
随机推荐
- 想象一下(imagine)
想象一下(imagine) 题目描述 我们高大的老班举起了有半个他那么高的三角板,说:"你们想象一下--" 于是你就陷入了想象-- 有一棵n个点的树,每个叶子节点上都有一个人,他们 ...
- HDU 2795 线段树区间最大值,单点更新+二分
Billboard Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 解决jsp在ios小屏手机下面滑动不流畅的问题
今天做好的静态文件发给后台改成jsp之后,发现原本流畅滑动的页面在iphone5下面变得一卡一卡的. 之后加上了 -webkit-overflow-scrolling: touch; 这个属性之后,成 ...
- 运输问题2(cogs 12)
[问题描述] 一个工厂每天生产若干商品,需运输到销售部门进行销售.从产地到销地要经过某些城镇,有不同的路线可以行走,每条两城镇间的公路都有一定的流量限制.为了保证公路的运营效率,每条公路都有一 ...
- Docker(五):镜像
一,什么是镜像? Docker的镜像文件是由文件系统叠加而成的.最底端是一个引导文件系统,即bootfs.Docker用户几乎永远没有机会和引导文件有什么交互,实际上,当一个容器启动之后,容器就会被移 ...
- [LeetCode] Binary Tree Postorder Traversal dfs,深度搜索
Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...
- [SaltStack] Return日志入库审计
SaltStack日志return审计 在我们执行salt任务时, 默认日志是屏幕打印的, 对于我们审计任务运行情况带来很不方便, 因此我们对日志结果进行了二次开发, 将job日志处理后入库, 方便查 ...
- C++学习(一):现代C++尝试
C++是一门与时俱进的语言. 早期的C++关注的主要问题是通用性,却没有太多关注易用性的问题,使得C++成为了一门多范式语言,但是使用门槛较高. 从2011开始,C++的标准进行了较大的更新,开始更多 ...
- 安卓edittext实现输入数字限制条件的效果
我们知道edittext能指定输入字符类型,这次我们就来了解下在数字模式下的一些显示控制输入的效果 1.限制输入数字 android:inputType="number|numberDeci ...
- CS Academy Round #65 Count Arrays (DP)
题目链接 Count Arrays 题意 给定$n$和$m$个区间.若一个长度为$n$的$01$序列满足对于每一个给定的区间中至少有一个位置是$0$, 那么这个$01$序列满足条件.求有多少满足条 ...