ffmpeg编译、使用与常见问题

  • 格式:pdf
  • 大小:171.41 KB
  • 文档页数:16

FFMPEG编译、使用与常见问题

一. Linux下FFMPEG的安装与测试.......................................................................................... 1 二. FFMPEG编译中出现的一些问题与解决方法 .................................................................... 4 三. FFMpeg简介及命令选项参数............................................................................................. 8 四. FFMPEG与x264的编译 .................................................................................................... 13

一. Linux下FFMPEG的安装与测试

a. 先装mp3在linux下的包:lame-3.97.tar.gz;

tar -xvzf lame-3.97.tar.gz;

cd lame-3.97;

./configure --enable-shared --prefix=/usr/;

make;

make install;

b. 支持Ogg Vorbis:

as4自带相应的rpm包,你可以安装一下如下rpm包:

libvorbis, libvorbis-devel,libogg, libogg-devel 一般情况下as4都会安装

c. 支持xvid x264,现在最流行的两种高质量的压缩格式

xvid的编译安装

wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz

tar zvxf xvidcore-1.1.0.tar.gz

cd xvidcore-1.1.2/build/generic

./configure --prefix=/usr --enable-shared

make

make install

x264的获取用git:

git clone git://git.videolan.org/x264.git

cd x264

./configure --prefix=/usr --enable-shared

make

make install3

d. AC3和dts编码的支持 as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行

libdts编译参数

tar zxvf libdts-0.0.2.tar.gz

./configure --prefix=/usr

make

make install

e. mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。这里我们安装faad2和faac就行

下载请到http://www.audiocoding.com/modules/mydownloads/ tar zxvf faad2-2.5.tar.gz

cd faad2

echo > plugins/Makefile.am

echo > plugins/xmms/src/Makefile.am

sed -i '/E_B/d' configure.in

autoreconf -vif

./configure --prefix=/usr

make &&

make install

tar zxvf faac-1.25.tar.gz

cd faac

sed -i '/[2de].M/d' configure.in

echo "AC_OUTPUT(common/Makefile common/mp4v2/Makefile libfaac/Makefile frontend/Makefile include/Makefile Makefile)" >> configure.in

autoreconf -vif

./configure --prefix=/usr

make &&

make install

f. 支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译 编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。 wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-510.zip

解压以后把里面的文件都拷贝到libavcodec/amrwb_float/ wget http://www.3gpp.org/ftp/Specs/archive/26_series/26.104/26104-510.zip

解压以后把里面的文件都拷贝到libavcodec/amr_float/

g. 安装ffmpeg:

//as4.3系统已经支持ac3编码,只要加--enable-a52 --enable-gpl参数就行

./configure --prefix=/opt/ffmpeg/ --enable-shared --enable-mp3lame --enable-amr_nb --enable-amr_wb --enable-a52 --enable-xvid --enable-libx264 --enable-faad --enable-faac --enable-gpl --enable-libogg --enable-vorbis --enable-pthreads;

make clean

make

make install

h. 配置环境变量

如果第g步中—prefix的参数设置是=/usr,则不用进行下面的设置。 FFMPEG_HOME=/opt/ffmpeg

export PATH=$PATH:$FFMPEG_HOME/bin

export LD_LIBRARY_PATH=$FFMPEG_HOME/lib

export FFMPEG_HOME

i. 使用ffmpeg转换视频为flv文件:

ffmpeg -i "076.mov" -y -ab 32 -ar 22050 -b 800000 -s 640*480 "test5.flv"

ffmpeg能解析的格式:(asx,asf,mpg,wmv,3gp,mp4,mov,avi,flv等)

j. 对ffmpeg无法解析的文件格式(wmv9,rm,rmvb等)

安装: MPlayer-1.0rc1.tar.bz2(http://www.mplayerhq.hu/design7/dload.html下 载)

all-20061022.tar.bz2(http://www.mplayerhq.hu/MPlayer/releases/codecs/下 载)

tar xvfj all-20061022.tar.bz2

cd /usr/local/lib/

mkdir codecs

Extract the file "all-20061022.tar.bz2" and copy its contents

into the directory /usr/local/lib/codecs/

解压缩后把所有的文件copy到/usr/local/lib/codecs/这个目录 tar xvfj MPlayer-1.0rc1.tar.bz2

cd MPlayer-1.0rc1

./configure

make make install

ok,这样就安装好了。

转化格式:

可以先用别的工具(mencoder)转换为avi(ffmpeg能解析的)格式. mencoder /input/a.rmvb -oac lavc -lavcopts acodec=mp3:abitrate=64 -ovc xvid -xvidencopts bitrate=600 -of avi -o /output/a.avi

再执行ffmpeg -i "/opt/input/a.avi" -y -ab 32 -ar 22050 -b 800000 -s 640*480 /opt/output/a.flv"就可以转了。

k.视频抓图:

ffmpeg -i "test5.flv" -y -ss 3 -vframes 1 -r 1 -ac 1 -ab 2 -s 160*120 -f image2 "1.jpg" //获取静态图 ffmpeg -i "/opt/input/a.mpg" -vframes 30 -y -f gif "/output/1.gif" //获取动态图;

不提倡抓gif文件;因为抓出的gif文件大而播放不流畅 g. 补充出现过的问题

由于mencoder执行的时候报了这个错误,所以有补充了下面这2个包 Error: /lib/libstdc++.so.5: version `GLIBCPP_3.2' not found (required by /usr/local/lib/codecs//drvc.so)

Win32 LoadLibrary failed to load: drvc.so, /usr/local/lib/codecs//drvc.so, /usr/lib/win32/drvc.so, /usr/local/lib/win32/drvc.so

Error loading dll

ERROR: Could not open required DirectShow codec drvc.so.

下载这2个包 compat-libstdc++-devel-8-3.3.4.2.i386.rpm

compat-libstdc++-8-3.3.4.2.i386.rpm

运行:rpm -ivh compat-libstdc*.rpm

这样这个错误就解决了。

备注:按照上面的操作,目前测试通过的视频格式有: wmv wm asf asx mpg mpeg mpe vob mov 3gp mp4 avi dat m4v

mencoder把wmv9 rm rmvb转化成avi,在通过ffmpeg转成flv格式。

支持音频: mp3 wav wma ram ra

二. FFMPEG编译中出现的一些问题与解决方法

首先,从svn上拿到ffmpeg的源代码,执行如下脚本: