当前位置:文档之家› ffmpeg编译、使用与常见问题

ffmpeg编译、使用与常见问题

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 /downloads/xvidcore-1.1.0.tar.gztar zvxf xvidcore-1.1.0.tar.gzcd xvidcore-1.1.2/build/generic./configure --prefix=/usr --enable-sharedmakemake installx264的获取用git:git clone git:///x264.gitcd x264./configure --prefix=/usr --enable-sharedmakemake install3d. AC3和dts编码的支持as4系统似乎已经支持ac3编码,编译的时候只要加--enable-a52 --enable-gpl参数就行libdts编译参数tar zxvf libdts-0.0.2.tar.gz./configure --prefix=/usrmakemake installe. mpg4 aac格式支持,由于服务器还针对手机用户服务,所以,类似aac,mpg4铃声格式的支持,我们也得做。

这里我们安装faad2和faac就行下载请到/modules/mydownloads/tar zxvf faad2-2.5.tar.gzcd faad2echo > plugins/Makefile.amecho > plugins/xmms/src/Makefile.amsed -i '/E_B/d' configure.inautoreconf -vif./configure --prefix=/usrmake &&make installtar zxvf faac-1.25.tar.gzcd faacsed -i '/[2de].M/d' configure.inecho "AC_OUTPUT(common/Makefile common/mp4v2/Makefile libfaac/Makefile frontend/Makefile include/Makefile Makefile)" >> configure.inautoreconf -vif./configure --prefix=/usrmake &&make installf. 支持3gp格式,这也是现在好多手机支持的格式,因为手机用户是我们的主要用户,所以也得支持编译编译的时候加上--enable-amr_nb --enable-amr_wb参数就行,根据编译系统的提示,所以我们得下载一些编译3gp所需得文件。

wget /ftp/Specs/archive/26_series/26.204/26204-510.zip解压以后把里面的文件都拷贝到libavcodec/amrwb_float/wget /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 cleanmakemake installh. 配置环境变量如果第g步中—prefix的参数设置是=/usr,则不用进行下面的设置。

FFMPEG_HOME=/opt/ffmpegexport PATH=$PATH:$FFMPEG_HOME/binexport LD_LIBRARY_PATH=$FFMPEG_HOME/libexport FFMPEG_HOMEi. 使用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.bz2cd /usr/local/lib/mkdir codecsExtract the file "all-20061022.tar.bz2" and copy its contentsinto the directory /usr/local/lib/codecs/解压缩后把所有的文件copy到/usr/local/lib/codecs/这个目录tar xvfj MPlayer-1.0rc1.tar.bz2cd MPlayer-1.0rc1./configuremakemake installok,这样就安装好了。

转化格式:可以先用别的工具(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.soError loading dllERROR: Could not open required DirectShow codec drvc.so.下载这2个包compat-libstdc++-devel-8-3.3.4.2.i386.rpmcompat-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 m4vmencoder把wmv9 rm rmvb转化成avi,在通过ffmpeg转成flv格式。

支持音频:mp3 wav wma ram ra二.FFMPEG编译中出现的一些问题与解决方法首先,从svn上拿到ffmpeg的源代码,执行如下脚本:./configure --prefix=/usr --enable-gpl --enable-shared --enable-pthreads --disable-ffserver --disable-ffplay不会请用./configure -help在这里,大家可以看到我并有enable任何的编码器。

主要是想在没有其他干扰的情况下,先尝试一下ffmpeg的独立编译。

果不其然,执行./configure就遇到了问题:1. bad interpreter:No such file or directory问题原因:脚本文件是DOS格式的, 即每一行的行尾以\r\n来标识, 其ASCII码分别是0x0D, 0x0A.解决方法:可以有很多种办法看这个文件是DOS格式的还是UNIX格式的, 还是MAC格式的(1)vi filename(2):set ff?可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出即可。

相关主题