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 ...
随机推荐
- Spring Boot学习——Controller的使用
本文主要记录几个注释的使用方法. 1. @Controller : 处理http请求 2. @RequestMapping : 配置URL映射 3. @RestController : 组合注解,sp ...
- 涂色问题(Python)
题目:将一个圆形等分成N个小扇形,将这些扇形标记为1,2,3,-,N.现在使用M种颜色对每个扇形进行涂色,每个扇形涂一种颜色,且相邻的扇形颜色不同,问有多少种不同的涂法?(N≥1,M≥3) 参考:ht ...
- Python学习杂记_10_三元运算符
常用三元运算符来简化分支和循环的代码: 分支简化: a = 1b = 2c = a if a > 1 else bprint(c) # 以上几行等同于 a = 1b = 2if a >1: ...
- 【linux高级程序设计】(第七章)终端及串口编程 未完成
一.端口设备类型 1.显示设备基本信息 cat /proc/tty/drivers 里面包括了: 当前终端:/dev/tty 前台控制台终端:/dev/console 用于创建虚拟终端的:/dev/p ...
- Django中的form设置field的html属性
在Django中无论何种field,都有一个widget的属性: class Field(object): widget = TextInput # Default widget to use whe ...
- PC网页js调用本地应用程序
最近要现实一个在PC网页中实现点击按钮调用本地应用程序的功能 其实实现原理也非常简单, 首先注册一个本地注册表文件,指向本地应用程序路径 其次在网页中用js指向这个注册表文件,就可以实现网页调用本地应 ...
- Interview | Why are manhole covers round and not square or rectangular?
Manholes, which interconnect underground sewerage pipes, and serve as a point of entry for cleaning ...
- Springboot如何优雅的解决ajax+自定义headers的跨域请求
1.什么是跨域 由于浏览器同源策略(同源策略,它是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.),凡是发 ...
- Android JNI&NDK编程小结及建议
前言 由于网上关于JNI/NDK相关的知识点介绍的比较零散而且不具备参照性,所以写了这篇JNI/NDK笔记,便于作为随时查阅的工具类型的文章,本文主要的介绍了在平时项目中常用的命令.JNI数据类型.签 ...
- 【jsp】jsp访问到之后报错如下:Uncaught SyntaxError: Unexpected token <
jsp访问到之后报错如下: Uncaught SyntaxError: Unexpected token < 问题出在哪里: 发现把这个注销掉,就不会出现这个问题了,那script引用js文件哪 ...