MyException - 我的异常网
当前位置:我的异常网» 操作系统 » [trans]在CentOS 五上安装FFMPEG

[trans]在CentOS 五上安装FFMPEG

www.MyException.Cn  网友分享于:2013-07-06  浏览:38次
[trans]在CentOS 5上安装FFMPEG

http://hi.baidu.com/lhabc/blog/item/6745898f6316c6f1503d9229.html

faac是用来压AAC音轨的,而faad2就是AAC音轨的解码器,liba52是进行AC3支持的
安装前准备编译的环境

yum install -y automake autoconf libtool gcc gcc-c++

1.下载需要的解码器
wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz
wget http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz
wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz
wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.0.tar.gz
wget ftp://ftp.videolan.org:21//pub/videolan/x264/snapshots/x264-snapshot-20090107-2245.tar.bz2
wget http://downloads.xvid.org/downloads/xvidcore-1.1.3.tar.gz
wget http://down1.chinaunix.net/distfiles/libdts-0.0.2.tar.gz

2.解压安装
解压
for i in *.tar.gz; do tar -xzvf "$i"; done
for i in *.tar.bz2; do tar -xjvf "$i"; done

安装的参数

a52dec: ./configure –enable-shared=PKGS && make && make install
faac & faad2: ./bootstrap && ./configure && make && make install
xvidcore: cd build/generic; ./configure && make && make install
libx264: ./configure –enable-mp4-output –enable-shared –enable-pthread && make && make install
lame & yasm: ./configure && make && make install

最后下载和安装ffmpeg
我是使用的svn同步比较新的,如果有时不能编译通过,可以考虑不使用最新的,不过要提示一下,就是连接这个网站,被我们国家的防火墙给kill掉了。需要各位自己想法子.

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

编译参数
./configure –enable-gpl –enable-postproc –enable-nonfree –enable-postproc –enable-libfaad –enable-swscale –enable-avfilter –enable-pthreads –enable-libxvid –enable-libx264 –enable-libmp3lame –enable-libfaac –disable-ffserver –disable-ffplay

支持rm和rmvb

对rm和rmvb,只有ffmpeg是不行的,还需要下面的mplayer
svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer
wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/essential-20071007.tar.bz2
wget http://www3.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
wget http://www.mplayerhq.hu/MPlayer/releases/codecs/essential-amd64-20071007.tar.bz2
for i in *.tar.bz2; do tar -xjvf "$i"; done
cp -rf essential-20071007/* /usr/local/lib/codecs
cp -rf all-20071007/* /usr/local/lib/codecs
cp -rf essential-amd64-20071007/* /usr/local/lib/codecs

./configure –prefix=/usr/local/mplayer –enable-gui –enable-freetype –codecsdir=/usr/local/lib/codes –win32codecsdir=/usr/local/lib/win32codcs

更新动态链接库

因为是编译器安装的,所以需要让系统可以找到动态链接库
#echo "/usr/local/lib" >> /etc/ld.so.conf
#echo "/usr/lib" >> /etc/ld.so.conf
#ldconfig

到这基本就安装完了

最基本的几个命令(一定要了解的)

显示支持的格式,不过好象加参数时,加其中的会有问题,看来参数和支持的格式是不一样的
$ ffmpeg -formats 

显示视频的相关信息,如时长,文件声音和视频格式之类的信息
ffmpeg -i abc.ts

查看可以加什么参数 
ffmpeg -h

mplayer获取影片信息
mplayer -identify movie-filename -nosound -vc dummy -vo null

使用ffmpeg从视频中抓图

ffmpeg -i 原视频文件路径 -y -f image2 -ss 8 -t 0.001 -s 图象大小(400×300) 图片存放路径

使用ffmpeg给视频转换成flv

ffmpeg -i 原视频文件路径 -o 目标文件路径 -of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=视频码流:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -vf scale=高:宽 -ofps 12 -srate 22050′)

ffmpeg 00:04:00 -t 00:08:00 -i -vcodec copy -acodec copy aaa.avi

FAQ
1.出现如下提示
-soname,libx264.so.65 -lm -lpthread -lgpac_static -s
/usr/bin/ld: cannot find -lgpac_static
collect2: ld returned 1 exit status
make: *** [libx264.so.65] Error 1

解决方法

yum install zlib-devel
wget http://internap.dl.sourceforge.net/sourceforge/gpac/gpac-0.4.5.tar.gz
wget http://internap.dl.sourceforge.net/sourceforge/gpac/gpac_extra_libs-0.4.5.tar.gz
tar -zxf gpac-0.4.5.tar.gz
tar -zxf gpac_extra_libs-0.4.5.tar.gz
cd gpac_extra_libs
cp -r * ../gpac/extra_lib
cd ../gpac
chmod +x configure
./configure
make lib
make apps
make install-lib
make install
cp bin/gcc/libgpac.so /usr/lib

注意,使用下面的参数出错
–enable-liba52 –enable-liba52bin
查看源码发现中包括了ac3

为了查找方便,把ffmpeg中的参数都列出来

参数 英文说明
-L show license
-h show help
-version show version
-formats 显示可以使用的格式,编码,协议
-f 强行设置输出格式[fmt]
-i 输入文件名[filename]
-y 不询问直接覆盖输出文件
-map set input stream mapping,file:stream[:syncfile:syncstream]
-map_meta_data set meta data information of outfile from infile,outfile:infile
-t set the recording time[duration]
-fs set the limit file size[limit_size]
-ss set the start time offset[time_off]
-itsoffset set the input ts offset[time_off]
-title 视频文件标题[string]
-timestamp set the timestamp[time]
-author set the author[string]
-copyright set the copyright[string]
-comment set the comment[string]
-album set the album[string]
-benchmark add timings for benchmarking
-dump dump each input packet
-hex when dumping packets, also dump the payload
-re read input at native frame rate
-loop_input loop (current only works with images)
-loop_output number of times to loop output in formats that support looping (0 loops forever)
-v control amount of logging[verbose]
-target specify target file type (”vcd”, “svcd”, “dvd”, “dv”, “dv50″, “pal-vcd”, “ntsc-svcd”, …)[type]
-threads thread count[count]
-vsync video sync method
-async audio sync method
-vglobal video global header storage type
-copyts copy timestamps
-shortest finish encoding within shortest input
-dts_delta_threshold timestamp discontinuity delta threshold
以下是视频相关的命令
-vframes 按所提供的帧数对文件解码(例ffmpeg -i test5.flv -r 15 -s 384*288 -y -vframes 1 photos.flv)[num]
-aframes set the number of audio frames to record[num]
-dframes set the number of data frames to record[num]
-r 设置帧速率,每秒多少帧 (Hz value, fraction or abbreviation)[rate]
-s 设置视频的宽度和高度,格式为320×240,320*240,320:240都可以
-aspect set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)[aspect]
-pix_fmt set pixel format[format]
-croptop set top crop band size (in pixels)[size]
-cropbottom “set bottom crop band size (in pixels)[size]
-cropleft set left crop band size (in pixels)[size]
-cropright set right crop band size (in pixels)[size]
-padtop set top pad band size (in pixels)[size]
-padbottom set bottom pad band size (in pixels)[size]
-padleft set left pad band size (in pixels)[size]
-padright set right pad band size (in pixels)[size]
-padcolor set color of pad bands (Hex 000000 thru FFFFFF)[color]
-intra use only intra frames
-vn disable video
-vdt discard threshold[n]
-qscale use fixed video quantizer scale (VBR)[q]
-qdiff max difference between the quantizer scale (VBR)[q]
-rc_eq set rate control equation[equation]
-rc_override rate control override for specific intervals[override]
-vcodec force video codec (’copy’ to copy stream)[codec]
-me set motion estimation method[method]
-me_threshold motion estimaton threshold
-ps set packet size in bits[size]
-strict how strictly to follow the standards[strictness]
-sameq use same video quality as source (implies VBR)
-pass select the pass number (1 or 2)[n]
-passlogfile select two pass log file name[filename]
-deinterlace deinterlace pictures
-psnr calculate PSNR of compressed frames
-vstats dump video coding statistics to file
-vhook insert video processing module[module]
-intra_matrix specify intra matrix coeffs[matrix]
-inter_matrix specify inter matrix coeffs[matrix]
-top top=1/bottom=0/auto=-1 field first
-dc intra_dc_precision[precision]
-vtag force video tag/fourcc[fourcc/tag]
-newvideo add a new video stream to the current output stream
-qphist show QP histogram
以下是音频相关的命令
-ab 声音码流(in kbit/s)[bitrate]
-aq 声音品质(codec-specific)[quality]
-ar 声音的采样频率 (in Hz)[rate]
-ac 设置输出的声道数[channels]
-an 不输出声音
-acodec 设置输入声音的编码格式 (’copy’ to copy stream)[codec]
-atag force audio tag/fourcc[fourcc/tag]
-vol change audio volume (256=normal)[volume]
-newaudio add a new audio stream to the current output stream
-alang set the ISO 639 language code (3 letters) of the current audio stream[code]
以下是字幕相关的命令
-scodec force subtitle codec (’copy’ to copy stream)[codec]
-newsubtitle add a new subtitle stream to the current output stream
-slang set the ISO 639 language code (3 letters) of the current subtitle stream[code]
以下是不常用的命令
-vd set video grab device[device]
-vc set video grab channel (DV1394 only)[channel]
-tvstd set television standard (NTSC, PAL (SECAM))[standard]
-ad set audio device[device]
-grab request grabbing using[format]
-gd set grab device[device]
-muxdelay set the maximum demux-decode delay[sec]
-muxpreload set the initial demux-decode delay[sec]
-absf
-vbsf
-default generic catch all option

(ffmpeg参数说明)

http://hi.baidu.com/lhabc/blog/item/6745898f6316c6f1503d9229.html

文章评论

Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员应该关注的一些事儿
程序员应该关注的一些事儿
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
编程语言是女人
编程语言是女人
中美印日四国程序员比较
中美印日四国程序员比较
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
鲜为人知的编程真相
鲜为人知的编程真相
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
10个调试和排错的小建议
10个调试和排错的小建议
旅行,写作,编程
旅行,写作,编程
一个程序员的时间管理
一个程序员的时间管理
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
程序员必看的十大电影
程序员必看的十大电影
程序员都该阅读的书
程序员都该阅读的书
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的鄙视链
程序员的鄙视链
程序员和编码员之间的区别
程序员和编码员之间的区别
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
 程序员的样子
程序员的样子
那些争议最大的编程观点
那些争议最大的编程观点
我是如何打败拖延症的
我是如何打败拖延症的
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
我的丈夫是个程序员
我的丈夫是个程序员
代码女神横空出世
代码女神横空出世
为什么程序员都是夜猫子
为什么程序员都是夜猫子
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
老程序员的下场
老程序员的下场
Java程序员必看电影
Java程序员必看电影
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
总结2014中国互联网十大段子
总结2014中国互联网十大段子
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
每天工作4小时的程序员
每天工作4小时的程序员
漫画:程序员的工作
漫画:程序员的工作
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有