FFMPEG笔记 - chapter0.介绍、编译与安装

FFMPEG笔记 - chapter0.介绍、编译与安装

0.0 FFMPEG简介


无论是在网络还是本地,对各种多媒体数据的处理时,我们需要了解FFMPEG的使用,它是一个多媒体处理程序库(框架),用处非常大,正如它的官网介绍的:

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation.

可以看出其官网对FFMPEG的能力还挺自信的,多媒体数据的各种编码解码的工作实在是很专业很繁重,有一个能力强的库能够帮助我们完成这些工作,提高我们的生产效率,何乐而不为呢?就用它了吧!

0.1 FFMPEG编译与安装


MAC下编译安装

在官网上即可下载其源码,各种不同的操作系统上都有不同的直接二进制的安装方法,比如Mac OS上得homebrew软件可以直接安装,brew install即可,在这里,为了满足我的一些定制需求和加深理解,我采用从源码编译安装,配置如下:

操作系统:OS X 10.9.5
FFMPEG: 2.7.1

跟大多数Linux开源软件类似,在源码目录,进行./configure即可进行自动配置来生成Makefile的,我们需要H264(一种视频编码格式)和AAC(一种语音编码格式)编解码器,ffmpeg默认是采用第三方软件来实现这些(其实在最新版本中AAC编码器终于从实验版本转为了正式版,可直接使用了),因为很多编解码器并非是完全的开源自由可使用软件,它有一些协议要求,真正在做商业应用的时候请注意,以免产生版权纠纷。我们这里使用:

./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-libfaac

如命令所示,我们采用libx264库来进行H264编码支持,libfaac来进行AAC编码支持,这些库需要到对应的官网或github上进行下载安装,基本都是./configure; make all; sudo make install这些步骤,然后默认的安装路径均为库文件在/usr/local/lib和头文件在/usr/local/include中,具体的在这里就不再赘述。
ffmpeg在configure脚本执行完成之后会显示出一堆的配置信息,展示出当前编译的ffmpeg支持与被支持的特性,用户可以输入./configure --help来查看可以配置的各项。
在这里,我们需要注意在我们执行完configure脚本之后的一个输出,即:

threading support         pthreads
safe bitstream reader     yes
SDL support               yes
opencl enabled            no
texi2html enabled         no

其中SDL support的结果将影响到能否正常编译生成出ffplay这个ffmpeg组件,它是一个简易的播放器,可以播放本地媒体或者网络流媒体,能快速检验我们使用ffmpeg开发的结果,所以如果SDL support不支持的话,就不生成ffplay,我们需要先安装SDL(Simple DirectMedia Layer)库,比较麻烦点得是,MAC 10.9.5是不默认带SDL了,且ffmpeg目前仅支持SDL1.2版本,而SDL已经有最新的SDL2.0了,如果使用的是MAC系统,可参考这篇文章,而我尝试了该方法做了修改,其在MAC 10.9.5下并不奏效,仍然提示有问题,所以我使用brew命令来安装,它会默认安装sdl-1.2.15的:

brew install sdl

然后再一次去按上面命令执行configure,SDL support就可以支持了。
configure之后就是,编译和安装了,均按照默认即可,-jX是让make能够X线并行编译,加快速度,这个X可根据处理器数量来给出:

make all -j4

sudo make install

这样,当前目录生成了ffmpeg的几个可执行文件,ffmpeg开发用的库也已经安装好了,直接输入ffmpeg命令,可显示出:

ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
built with Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
configuration: --enable-gpl --enable-nonfree --enable-libx264 --enable-libfaac
libavutil      54. 27.100 / 54. 27.100
libavcodec     56. 41.100 / 56. 41.100
libavformat    56. 36.100 / 56. 36.100
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 16.101 /  5. 16.101
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  2.100 /  1.  2.100
libpostproc    53.  3.100 / 53.  3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

参考文献

  1. ffmpeg, http://www.ffmpeg.org
  2. libx264, http://www.videolan.org/developers/x264.html
  3. libfaac, http://www.audiocoding.com/faac.html
  4. libsdl, http://www.libsdl.org/
  5. 在OS X上编译ffmpeg和ffplay, http://blog.shengbin.me/posts/build-ffmpeg-on-os-x/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值