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的源代码,执行如下脚本: