为了在Linux下将视频文件转码成WebM格式,你需要ffmpeg 0.6以上版本。一般这个不成问题,例如在Ubuntu 10.10上自带的ffmpeg已经内含对WebM的支持。除此之外,你还需要libvpx支持,这也在系统的软件库中提供了。
首先,建立一个ffmpeg配置文件(假设你要编码的是720p格式,若不是,需修改此配置文件):
vcodec=libvpx g=120 rc_lookahead=16 level=216 profile=0 qmax=42 qmin=10 vb=2M #ignored unless using -pass 2 maxrate=24M minrate=100k将以上内容保存到/usr/share/ffmpeg/libvpx-720p.ffpreset文件中。如果此文件已经存在,则可察看一下现有版本与以上内容有何差异,并根据ffmpeg的手册进行必要的调整。
现在就可以开始编码了。依次执行以下两条命令:
ffmpeg -i input.mp4 -vpre libvpx-720p -b 3900k -pass 1 -an -f webm -y output.webm ffmpeg -i input.mp4 -vpre libvpx-720p -b 3900k -pass 2 -acodec libvorbis -ab 100k -f webm -y output.webm将input.mp4替换成你的输入文件,output.webm是输出文件名。注意在pass 1中ffmpeg将生成一个中间文件,因此两条命令应在同一目录下执行。
另外,如有必要,可以在命令行添加-s 1280x720这个参数,指定视频的尺寸,但我的实测表明这么做可能引起视频比例与原始视频不符。
参考资料:The p-Code Machine