编译安装ffmpeg以支持mp3,x264等

本来ffmpeg是个挺好的东西,但可能是因为License冲突方面的问题(个人感觉好像是GPLv3跟别的License有冲突),所以这两年 的ffmpeg中已经不包含如libmp3lame和libx264之类常用库的支持,这在实际使用中就会很不方便。虽然据说有一些简单的方法,如《HOWTO: Easily enable MP3, MPEG4, AAC, and other restricted encoders in FFmpeg》,但我试了其中的两个比较简单的方法:安装extra库和安装Medibuntu,结果都没有能达到目的。所以不得不自己编译安装ffmpeg。

所用的平台是Ubuntu 12.04 amd64版。之前主要的问题就是kdenlive和openshot这样的视频编辑软件无法导出MP4/H.264/Xvid等格式,所以这里的解决方案也主要是针对这两个软件来的。

先按照ffmpeg的官方文档《Compile FFmpeg on Ubuntu》编译安装x264和libvpx。不过在64位下要注意,编译x264时要使用下面的命令(加上--enable-shared),否则编译ffmpeg会出错:

./configure --enable-static --enabled-shared

64位平台需要注意此命令运行完成后的结果,其中shared和PIC两项都必须是yes。

编译安装ffmpeg是用kdenlive的《Installing FFmpeg》文档推荐的编译参数,其中包含的一些库可能需要自己用apt安装一下。注意,要装相应的-dev版本。

./configure --prefix=/usr --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaac \
    --enable-libvorbis --enable-pthreads --enable-libfaac --enable-libxvid --enable-x11grab \
    --enable-libgsm --enable-libx264 --enable-libtheora --enable-libdc1394 --enable-nonfree \
    --disable-stripping --enable-avfilter --enable-libschroedinger --enable-libopencore-amrnb \
    --enable-libopencore-amrwb --enable-version3

我是另外装了这些:

sudo apt-get install libgsm1-dev libschroedinger-dev libdc1394-22-dev

编译也是用kdenlive推荐的:

make -j3

安装是用ffmpeg官方推荐的:

sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

这样一般就可以了。