转帖:http://rhingheart.blogspot.com/2009/03/ffmpegx264-ffmpeg-x264.html
注:讲实话,有关这些使用的文章真的不错,我们在这谢谢" SV的边界 "本来我自己还想总结一下的。看来没有必要了,呵呵,在次多谢" SV的边界 ".下面原文
使用ffmpeg进行.264编码的相关文章比较少,google了一下,特总结如下:
接下来说明下ffmpeg命令行的语法规则(本块内容来自2009-03-02官方文档):
语法规则结构:
ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...
一个最简单的命令形式:
ffmpeg -i input.avi -b 64k output.avi
这个命令把视频以64k的码率重编码。
显然,输入文件前面要加一个-i选项下面介绍一些有用的全局参数:
"vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", …
这个例子把视频转换成vcd的格式 ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
接下来介绍视频选项:
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
否则用处不大
ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NULffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null
zero (0向量)
phods
epzs (默认)
full (完全搜索,很慢又好不到哪里去)
0 使用mb_cmp,不知道是什么东西,所以这些参数我参考一下mencoder里面的
1 选用需要比特最少的宏块模式
2 选用码率失真最优的宏块模式
音频部分:
下面举几个x264编码的例子:
我使用mencoder调用x264编码一个psp用的视频:
x264+aac in mp4 (我修改过的,原作者的不能使用)
mencoder test_video.vob -oac lavc -lavcopts acodec=libfaac:abitrate=94 -ovc x264 -x264encopts
/
cabac=1:ref=1:deblock=1,0,0:analyse=0x1,0x111:me=hex:subme=6:psy_rd=1.0,0.0:mixed_refs=0:me_range=32:chroma_me=1:trellis=1:8x/
8dct=0:no-chroma-me=0:chroma_qp_offset=-/
2:nr=0:dct_decimate=1:bframes=3:b_pyramid=0:b_adapt=1:b_bias=0:direct=3:keyint=250:keyint_min=25:scenecut=40:qp=18:bitrate=80/
0 -lavdopts er=2 -of lavf -lavfopts format=mp4 -vf scale=720:480 -o men.mp4
对应的ffmpeg编码参数是:
ffmpeg
ffmpeg -i inputfile.avi -f psp -acodec libfaac -ab 94k -vcodec libx264 -cqp 28 -coder 1 -refs 3 -deblockalpha 1 -deblockbeta -1 -me_method umh -subq 9 -me_range 32 -trellis 2 -chromaoffset -2 -nr 0 -bf 2 -b_strategy 1 -bframebias 0 -directpred 3 -g 250 -i_qfactor 1.3 -b_qfactor 1.4 -flags2 +bpyramid+wpred+mixed_refs+8x8dct -er 2 -s 480x320
需要注意的是,flags2里面那块,似乎要按照一定顺序才能正常工作,其他地方都差不多,详细情况可以从下面两篇文章得出:
第一篇是这个在网上被传了很多,但有些问题的对照表格,我修改了有问题的部分:
FFmpeg option x264 option -g <frames> –keyint -b <bits per second> –bitrate -bufsize <bits> –vbv-bufsize -maxrate <bits> –vbv-maxrate -pass <1,2,3> –pass -crf <float> -cqp <int> -bf <int> –bframes -coder <0,1> –no-cabac -bframebias <int> –b-bias -keyint_min <int> –min-keyint -sc_threshold <int> –scenecut -deblockalpha <int>-deblockbeta <int> –deblock -qmin <int> –qpmin -qmax <int> –qpmax -qdiff <int> –qpstep -qcomp <float> –qcomp -qblur <float> –qblur -complexityblur <float> –cplxblur -refs <int> -directpred <int> –direct -me_method <epzs,hex,umh,full> -me_range <int> –merange -subq <int> –subme -bidir_refine <0,1> –bime -trellis <0,1,2> –trellis -nr <int> -level <int> –level -bt <bits> –ratetol = -bt / -b -rc_init_occupancy <bits> –vbv-init = -rc_init_occupancy / -bufsize -i_qfactor <float> –ipratio = 1 / -i_qfactor -b_qfactor <float> –pbratio -chromaoffset <int> –chroma-qp-offset -rc_eq <string> –rc_eq -threads <int> –threads -cmp <-chroma/+chroma> –no-chroma-me -partitions –partitions +parti8×8 +parti4×4 +partp8×8 +partp4×4 +partb8×8 -flags -loop/+loop –no-deblock/–deblock -psnr/+psnr –no-psnr/nothing -flags2 +bpyramid –b-pyramid +wpred –weightb +brdo –b-rdo 我这里的ffmpeg已经不能用这个了 +mixed_refs –mixed-refs +dct8×8 –8×8dct -fastpskip/+fastpskip –no-fast-pskip酷播,让传播更生动 / 酷播云,企业视频应用专家
2009-2023(C)Powered by www.CuPlayer.com 酷播网站 / 易方信息科技股份有限公司 粤ICP备12077762号 粤公网安备 44011302001624号