mencoder是linux平台功能强大的视频格式转换工具。为将“越狱”拷贝到我的手机里,于是记录下这些使用的基本参数
mencoder.exe -srate 22050 -vf scale=208:-3 -ofps 12 -oac mp3lame -lameopts mode=3:cbr:br=24 -ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vhq:vbitrate=112 "需要转换的视频文件" -o "输出的.avi" 2> 2.txt
1、-srate 22050 声音采样频率设置,现为22K
2、-vf scale=208:-3 宽度为208,高度自动调整保持比例;-vf scale=-3:176宽度自动调整保持比例,高度为176;如果想保持原来的大小可以不要这个参数
3、-ofps 12 帧速率设置,现为12fps
4、-oac mp3lame 音频采用mp3编码
5、-lameopts mode=3:cbr:br=24单声道,音频码率为24kbps;-lameopts mode=0:cbr:br=24立体声,音频码率为24kbps;
还可设置音量,-lameopts mode=3:cbr:br=32:vol=1,设置范置为1~10,但不宜设得太高
6、-ovc lavc -ffourcc DX50 -lavcopts vcodec=mpeg4:vhq:vbitrate=112采用高质DivX视频编码,视频码率为112kbps;
-ovc xvid -xvidencopts bitrate=112采用XviD视频编码
附文:
使用mencoder制作pda使用的电影
1 mplayer和mencoder
mplayer 是最为强大和灵活的多媒体播放器软件之一,在windows平台能够和他相提并论的只有media player classic而已。mencoder是和mplayer共享同样架构和底层库的多媒体编码软件。这使得mencder有很好的兼容性,和很快的速度。大家只要记住一点:
MPLAYER能够播放的电影,就能够通过mencoder编码。
但反过来,MPLAYER播放有问题的电影,MENCODER也无能为力。这是mencoder最强的,也是最弱的一点。
注意:在此首先提醒,mplayer和mencoder是基于命令行的软件,不过对于mencoder来说,常用的参数就那么几个,可以用简单的脚本来驱动。
2 准备工作
作为典型的unix风格的软件(也包括他的开放源代码性质),mplayer不需要运行什么安装程序,也不需要系统提供的codec,他的安装过程可以参考:
... flat&tid=483408
(不能够访问连接的,可以通过访问TLF论坛--软件讨论版--神乎奇迹的播放软体mplayer 找到,这个帖子的名字和点击量还是相当匹配的)
当按照这篇文章按照以后,能够正常的使用mplayer播放wmv9,quicktime,和大部分的rm/rmvb时候,代表mplayer和mencoder的配置完成。
3 使用mencoder进行编码
首先选择一部avi文件,假设文件名为src.avi,启动命令行,运行
mencoder.exe src.avi -o dst.avi -endpos 60 -oac copy -ovc copy
他的含义是截取src.avi的前60秒,并且不通过再编码,直接输出为dst.avi。这时候dst.avi应该是src.avi的前60秒的内容。
这个命令行参数中,有一些需要注意的地方:
1 src.avi 源文件名是src.avi
2 -o dst.avi 编码输出的文件名是dst.avi
3 -endpos 60 在第60秒的地方结束编码,这个位置也可以跟其它的全局参数(任何在mplayer播放时指定的参数,都可以在这个位置给出)
4 -oac 指定音频编码方式
5 -ovc 指定视频编码格式
无论后面的mencoder参数多么复杂,都是由这5个部分组成,这点需要牢记。而通过第3点,可以在编码中延伸出非常多的技巧。
接着,使用更加复杂一些的参数:
mencoder.exe src.avi -o dst.avi -endpos 60 -oac mp3lame -lameopts vbr=3:br=128 -ovc copy
他的含义是截取src.avi的前60秒,视频不重新编码,音频使用lame进行重新编码,指定vbr编码方式为abr,比特率为128kbps。
命令行的参数:
1 -lameopts 编码的参数
2 : 各个编码参数使用":"隔开,并列列出
这一步成功以后,试着对音频不重新编码,对视频重新编码:
mencoder.exe src.avi -o dst.avi -endpos 60 -vf scale=320:240 -oac copy -ovc xvid -xvidencopts pass=1:bitrate=300
mencoder.exe src.avi -o dst.avi -endpos 60 -vf scale=320:240 -oac copy -ovc xvid -xvidencopts pass=2:bitrate=300
和上一个不同的是,在编码前视频被scale成320*240格式,接着使用xvid进行编码,1pass,bitrate为300(1 pass的bitrate选项好像无效?),接着使用2pass编码一遍
如果mencoder报错误,首先检查以上的命令行参数是否正确,特别是空格。
通过以上3步,而且都成功的话,那么可以实际试验真正的编码格式了,我目前使用的参数为:
mencoder.exe src.avi -o dst.avi -noskip -vf scale=320:240 -oac mp3lame -lameopts vbr=3:br=128 -ovc xvid -xvidencopts pass=1:bitrate=300:keyframe_boost=20:trellis:quant_type=h263
mencoder.exe src.avi -o dst.avi -noskip -vf scale=320:240 -oac mp3lame -lameopts vbr=3:br=128 -ovc xvid -xvidencopts pass=2:bitrate=300:keyframe_boost=20:trellis:quant_type=h263
无论是电影还是动画,这个参数设置都可以得到非常理想的效果。速度方面,在音频视频都重新编码的情况下,2pass的情况下,在我的C4 2G的机器上,略小于播放时间。我的经验不足,不然2pass中第一遍pass的速度还可以提高。体积方面,一部127分钟的dvd光盘编码后大小为 340M,一部25分钟的动画,编码后结果在76M左右。
在dell x5(pxa255 300MHZ),使用betaplayer播放,除了偶尔停顿以外,整体相当流畅。
4 一些编码提示
---对于dvd光盘的转换,源文件的格式为 dvd://1 -dvd-device z:/
其中z是dvd光驱号.
---对于源是ac3的音频,往往比较轻,可以在lameopts中指定vol=n(取值0-10)来提高增益(音量)
--使用-vf scale -zoom -xy 320 可以指定输出视频的宽度为320,由mencoder自行计算合适的高度
--使用-noskip 禁止编码中跳帧
--使用-ss 00:30 -endpos 60编码电影中30分钟开始的60秒内容,在编码整部电影之前,可以尝试编码片断以看看效果,并且根据结果调整参数
--对于采样率为22KHZ的音频,如果转换后的音频存在问题,可以在mencoder参数的第3部分指定-ssrate 44100进行重采样
--质量优先的情况下,对于源音频不大于128kbps的,建议保留,大于这个值的,重新编码为128kbps
--质量优先的情况下,建议视频编码不低于250kbps,300kbps可以得到相当满意的结果
--质量优先的情况下,建议保留原始的fps
阅读(1914) | 评论(1) | 转发(0) |