Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2305862
  • 博文数量: 141
  • 博客积分: 3552
  • 博客等级: 中校
  • 技术积分: 4148
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-15 14:39
个人简介

熟悉Linux下程序设计及各种应用程序 熟悉C Language 熟悉Glusterfs、FFmpeg、CDN 系统设计,计算机图形系统设计、分布式程序设计 目前主要研究方向:流媒体

文章分类

全部博文(141)

分类: LINUX

2016-08-17 17:53:58

FFMpeg在官方网站中提供了已经编译好的可执行文件,用FFmpeg的人很多,因为FFmpeg是开源的,并且可以自己DIY,而且很强大,所以,FFmpeg还有一个优势就是开源。而在使用Linux时,无论是用ubuntu或者redhat,如果使用系统提供的源安装ffmpeg时会发现,版本相对比较老旧,例如apt-get install ffmpeg后或者yum install ffmpeg后会发现,版本很老,有些新的功能不一定支持,例如一些新的封装格式,或者通信协议。所以会编译FFmpeg这个技能就至关重要了,甚至让自己DIY起来更加顺利。

2.1 FFmpeg Windows平台编译
FFmpeg在Windows平台中编译时使用的cygwin来进行编译,首先需要安装cygwin环境,然后才可以编译,如果不希望使用cygwin而使用Visual Studio的话,则需要消耗很多时间去支持到Visual Studio平台,与其话费时间去做这些事,还不如直接使用cygwin进行支持。
由于cygwin的平台使用方式为模拟Linux的环境,所以编译FFmpeg在cygwin平台下,也同样简单,同样方便。

Configure之后,可以通过make;make install安装源码编译的ffmpeg,在cygwin平台下make编译ffmpeg是一个比较漫长的过程。当编译安装完成后,即可使用ffmpeg命令,但是这个编译出来的ffmpeg仅仅为最简易的ffmpeg,并没有支持h264、h265、加字幕等编码支持,如果需要支持更多模块和参数,还需要进行更加详细的定制。
2.2 FFmpeg Linux平台编译
FFmpeg在很多Linux的发行版本源中已经包含,例如Ubuntu / Fedora的镜像源中包含了安装包,但是版本相对来说比较老,有些甚至不支持H264、H265编码,或者不支持rtmp协议等,为了支持这些协议,编码,需要自己手动编译一套FFmpeg,所以在Linux下面,推荐的最好的FFmpeg就是根据自己的需求进行定制的FFmpeg,默认编译FFmpeg的时候,需要用到yasm汇编器对FFmpeg中的汇编部分进行编译,如果不用汇编部分的代码,可以不安装yasm汇编器。默认执行配置的时候,提示错误:

根据图中的错误提示,可以使--disable-yasm来进行ffmpeg的编译配置,不过这么做的话就不编译ffmpeg的汇编代码部分,相关的优化会少一些。如果需要去掉这些错误,可以通过安装yasm汇编器来解决:

下载yasm汇编器后,configure过后,可以通过make编译,make install安装即可;
然后再回到ffmpeg源代码目录中进行之前的configure操作,就会消失。


2.3 FFmpeg OSX平台编译
有些人在OSX下面使用FFmpeg进行一些编转码或流媒体采集等工作,为了方便调试,需要生成OSX平台相关的FFmpeg,在OSX下面编译FFmpeg前,首先需要安装编译环境,在OSX下面使用的编译工具链为LLVM,如图:

还需要安装yasm汇编编译工具,否则在生成Makefile时会报未安装yasm工具的错误.

在LLVM下源码安装FFmpeg,与其他平台几本相同,尤其与Linux相同,FFmpeg从git://source.ffmpeg.org/ffmpeg.git中git clone下来:

源代码down下来之后,可以开始进入进入编译阶段,通过如下几部可以完成基本的编译工作:

接着只需要执行make编译与make install安装即可。

阅读(14241) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~