参数详解:
1、-ofps 15 :帧速率15fps
2、scale=176:144 :图像原始比例,如4:3/16:9,-3表示适应宽度,-1表示默认值
3、expand=176:144:转换后的分辨率,0:0:1表示视频x,y位置
1、-ofps 15 :帧速率15fps
2、scale=176:144 :图像原始比例,如4:3/16:9,-3表示适应宽度,-1表示默认值
3、expand=176:144:转换后的分辨率,0:0:1表示视频x,y位置
4、-srate 44100 :声音采样率44100Hz
5、-ovc xvid :视频编码格式XVID
6、-xvidencopts bitrate=500:视频编码率500Kbps
7、max_bframes=0:禁用BFrame
8、quant_type=h263:XVID编码的量化方式(建议改为mpeg)
9、me_quality=0:VHQ模式参数,动态搜索精度(6为精度最大值)
10、-lavcopts acodec=mp2:音频编码为MP2
11、abitrate=96 :音频编码率96Kbps
5、-ovc xvid :视频编码格式XVID
6、-xvidencopts bitrate=500:视频编码率500Kbps
7、max_bframes=0:禁用BFrame
8、quant_type=h263:XVID编码的量化方式(建议改为mpeg)
9、me_quality=0:VHQ模式参数,动态搜索精度(6为精度最大值)
10、-lavcopts acodec=mp2:音频编码为MP2
11、abitrate=96 :音频编码率96Kbps
这样对于一个15fps视频最佳参数为:
max_key_interval=150:max_bframes=0:profile=sp3:trellis:chroma_me:chroma_opt:hq_ac:quant_type=h263:me_quality=6:vhq=4
Xvid编码高级参数:
压缩过程中的视频码率建议不要超过192Kbps(因为对于加入了手动参数的Xvid编码器,画质提升是相当明显的),强烈建议用2-Pass压缩!
首先介绍一下这些高级参数的作用:
cartoon:卡通模式,非卡通则去掉此参数
vhq=4:VHQ MODE(动态搜索算法),有0-4五个值,越大画质越好,但是编码速度越慢
me_quality=6: 动态搜索精度(6为精度最大值)
chroma_me:动态检索 ,色彩动态评估
vhq=4:VHQ MODE(动态搜索算法),有0-4五个值,越大画质越好,但是编码速度越慢
me_quality=6: 动态搜索精度(6为精度最大值)
chroma_me:动态检索 ,色彩动态评估
max_bframes=0 :B帧最大间距,设为0表示关闭B帧功能
profile=XXX :小于等于15fps设置为sp3,大于15fps设置为asp3
max_key_interval=XXX :最大I帧(关键帧)间隔,一般设置成帧数的10倍
Quant_type=mpeg:量化矩阵,Mpeg模式,如果压缩时去掉这段就默认量化矩阵为H.263
trellis:高质量量化模式
GMC:全域动态补偿
qpel:四分之一像素精确动态补偿(如果使用了该功能则可能降低解码速率,建议不用)
bvhq=1:在B帧上启用VHQ
lumi_mask:加大画面明暗部分压缩率(一般不用,有时会导致画面失真)
greyscale:使用灰度,但是便出来的画面是黑白的(一般不使用)
interlacing:隔行处理,适用于交错片源(一般不使用)
chroma_opt:色度优化 ,色彩最佳化
profile=XXX :小于等于15fps设置为sp3,大于15fps设置为asp3
max_key_interval=XXX :最大I帧(关键帧)间隔,一般设置成帧数的10倍
Quant_type=mpeg:量化矩阵,Mpeg模式,如果压缩时去掉这段就默认量化矩阵为H.263
trellis:高质量量化模式
GMC:全域动态补偿
qpel:四分之一像素精确动态补偿(如果使用了该功能则可能降低解码速率,建议不用)
bvhq=1:在B帧上启用VHQ
lumi_mask:加大画面明暗部分压缩率(一般不用,有时会导致画面失真)
greyscale:使用灰度,但是便出来的画面是黑白的(一般不使用)
interlacing:隔行处理,适用于交错片源(一般不使用)
chroma_opt:色度优化 ,色彩最佳化
Quantization量化选项(关键的关键就在这里!)
量化器级别(quantizer level)即Q值越高画面细节越丰富,但是在低码率下越高的量化器级别,会带来越低的画面质量,Q 值越小,质量越好,码率越大;Q 值越大,质量越差,码率越小。(实际上,它的原始概念更复杂,我们干脆简单地认为1就是100%原质量,31就是1/31的原质量好了)。P-frame(即未来单项预测帧)建议设置在1–15之间,(它的作用是只储存与之前一个已解压画面的差值。即仅仅描述它与前一帧的区别)。I-frame(即关键帧)的Q值只用能作用于2pass-second压制上,在VirtualDub被标示为 [K],关键帧是构成一个帧组(GOP,Group of Picture)的第一个帧。I-Frame 保留了一个场景的所有信息(Keyframe原意是指可以单独解码、用于同步的frame,不过在MPEG系统中只有I-frame有这个特性,因为BF和PF都是预测帧,要靠I-Frame来还原)。B-frame(即双向预测帧)除了参考之前解压过了的画面外,亦会参考后面一帧中的画面信息。这三个设置的范围都是1-31,应该注意的是在场景昏暗的条件下不要让B-frame过低。
min_iquant=1——IF的量化最低值(取值范围在1-31之间)
max_iquant=10——IF的量化最高值(取值范围在1-31之间)
min_pquant=1——PF的量化最低值(取值范围在1-31之间)
max_pquant=10——PF的量化最高值(取值范围在1-31之间)
min_bquant=1——BF的量化最低值(取值范围在1-31之间)
max_bquant=30——BF的量化最低值(取值范围在1-31之间)
min_iquant=1——IF的量化最低值(取值范围在1-31之间)
max_iquant=10——IF的量化最高值(取值范围在1-31之间)
min_pquant=1——PF的量化最低值(取值范围在1-31之间)
max_pquant=10——PF的量化最高值(取值范围在1-31之间)
min_bquant=1——BF的量化最低值(取值范围在1-31之间)
max_bquant=30——BF的量化最低值(取值范围在1-31之间)
-sws 9 取值范围在(0-9)之间,不同值代表不同的Resize算法!建议用 -sws 9
0 快速二次线性(默认)(速度较快)
1 二次线性
2 二次立方(质量很好)
3 实验中
4 最短距离 (bad quality)
5 区域
6 亮度二次立方 度二次线性
7 高斯
8 sincR
9 lanczos(速度较快,而且画面锐利)
10 双三次样条曲线
0 快速二次线性(默认)(速度较快)
1 二次线性
2 二次立方(质量很好)
3 实验中
4 最短距离 (bad quality)
5 区域
6 亮度二次立方 度二次线性
7 高斯
8 sincR
9 lanczos(速度较快,而且画面锐利)
10 双三次样条曲线
实际应用举例:
vhq=4:cartoon:chroma_me:min_iquant=1:chroma_opt:min_iquant=1:max_iquant=12:min_pquant=1:max_pquant=12:bvhq=1:min_bquant=1
添加到WisMencoder的手动参数中的
视频编码处
,然后再把 -sws 9 参数添加到
视频滤镜处
即可!记得-sws 9前一定加个空格,要不编码器不会启动!当然你也可以自己摸索适合的方案,做出效果更佳的方案!
Mencoder视频转换成flv格式
mencoder “input.avi” -o “output.flv” -of lavf -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -oac mp3lame -lameopts abr:br=56 -ovc lavc -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1 -ofps 29.97 -srate 22050
(在我机上运行时,-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames参数识别不出来,这个是因为mencoder的版本不同造成的,我这里可以简单地去掉这个参数或者看mencoder的文档说明来改正过来)
参数详解:
-o “output.flv”:是输出文件路径;
-of lavf:是输出文件格式,这里不是flv而是lavf,是因为flv属于libavformat;
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:-lavfopts表示对lavf进行一些设置,设置的内容就是i_certify_that_my_video_stream_does_not_use_b_frames,翻译成中文就是:我确定,我的视频不用B frames,对于转换flv格式,最好加上这个参数,否则可能会报错。
-oac mp3lame:oac=output audio codec,输出音频编码器,这里用的mp3lame;
-lameopts abr:br=56:lame options,是专门针对mp3lame的参数设置,abr:br=56,是设置音频比特率为56;
-ovc lavc:ovc=output video codec,输出视频编码器,lavc表示one of libavcodec’s video codec,输出格式为libavformat之一;
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:trell:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1: 对lavc进行一些设置,详细介绍如下 :
vcodec=flv:指定视频编码器为flv;
vbitrate=500:指定视频比特率为500。
mbd:宏模块选择算法,值为0~2默认为0,值越大转换越缓慢,但在品质和文件大小方面有好处;
mv0:编译每个宏模块并选择最好的一个,当mbd=0时无效;
v4mv:会稍微增加品质,mbd>0时效果更明显;
trell:量子化网格搜索,对每8×8block找到最优化编码;
cbp:只能和trell一期使用,评估失真的图像块编码;
last_pred=3:与上一帧相比的移动数量预测,值为0~99,1~3比较合适,大于3时对品质的提高已经无关紧要,但却会降低速度;
dia=4:移动搜索范围,值为-99~6,对于快速转换,-1是个不错的值,如果不是很重视速度,可以考虑2~4;
cmp=6:值为1~2000,默认为0,设置用于全象素移动预算的比较函数
vb_strategy=1:对动作很大的场景会有帮助,对有些视频,设置vmax_b_frames会有损品质,加上vb_strategy=1会好点。
-of lavf:是输出文件格式,这里不是flv而是lavf,是因为flv属于libavformat;
-lavfopts i_certify_that_my_video_stream_does_not_use_b_frames:-lavfopts表示对lavf进行一些设置,设置的内容就是i_certify_that_my_video_stream_does_not_use_b_frames,翻译成中文就是:我确定,我的视频不用B frames,对于转换flv格式,最好加上这个参数,否则可能会报错。
-oac mp3lame:oac=output audio codec,输出音频编码器,这里用的mp3lame;
-lameopts abr:br=56:lame options,是专门针对mp3lame的参数设置,abr:br=56,是设置音频比特率为56;
-ovc lavc:ovc=output video codec,输出视频编码器,lavc表示one of libavcodec’s video codec,输出格式为libavformat之一;
-lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:v4mv:trell:cbp:last_pred=3:dia=4:cmp=6:vb_strategy=1: 对lavc进行一些设置,详细介绍如下 :
vcodec=flv:指定视频编码器为flv;
vbitrate=500:指定视频比特率为500。
mbd:宏模块选择算法,值为0~2默认为0,值越大转换越缓慢,但在品质和文件大小方面有好处;
mv0:编译每个宏模块并选择最好的一个,当mbd=0时无效;
v4mv:会稍微增加品质,mbd>0时效果更明显;
trell:量子化网格搜索,对每8×8block找到最优化编码;
cbp:只能和trell一期使用,评估失真的图像块编码;
last_pred=3:与上一帧相比的移动数量预测,值为0~99,1~3比较合适,大于3时对品质的提高已经无关紧要,但却会降低速度;
dia=4:移动搜索范围,值为-99~6,对于快速转换,-1是个不错的值,如果不是很重视速度,可以考虑2~4;
cmp=6:值为1~2000,默认为0,设置用于全象素移动预算的比较函数
vb_strategy=1:对动作很大的场景会有帮助,对有些视频,设置vmax_b_frames会有损品质,加上vb_strategy=1会好点。
注意:
有些来路不明的FLV文件,或是由FFMPEG、Mencoder转的FLV文件,Meta Data是损坏的,FLV播放时不能拖放。
两个修复工具:
Flvtool2,Flvmdi
,给flv文件加入时间标签。
当网上的转换命令有在自己机上不好使用时,一般是由于版本的问题所造成的,可以到这个
http://www.mplayerhq.hu/design7/dload.html
网站上下载mencoder,下载它后也要下载dll文件,我下的是在
Binary Codec Packages
下面的Windows x86 20071007里下的windows-essential-20071007包,里面含有转换时用到的dll(主要是drv43260.dll;pncrt.dll这两个dll):