13.1. 选择编解码器及容器格式

编码使用的音频及视频编码器分别通过-oac-ovc选项指定 例如输入如下命令

mencoder -ovc help

可列出你机器上相应版本的MEncoder所支持的所有视频编码。 下列选择也是可用的:

音频编码器:

音频编码器名称描述
mp3lame通过LAME编码为VBR,ABR或CBR格式的MP3文件
lavc利用libavcodec中的一个编码器
faacFAAC AAC音频编码器
toolameMPEG音频Layer 2编码器
twolame基于tooLAME的MPEG音频Layer 2编码器
pcm未压缩的PCM音频
copy不要重新编码,这是复制已压缩的各桢

是频编码器:

是频编码器名称描述
lavc使用libavcodec中的一个是频编码器
xvidXvid, MPEG-4高级简单格式(ASP)编码器
x264x264, MPEG-4高级视频编码(AVC), AKA H.264编码器
nuvnuppel视频,为一些实时程序所用
raw未压缩的视频桢
copy不要重新编码,只是复制已压缩的各桢
frameno用于三通道编码(不推荐)

输出容器格式通过-of选项选择。 输入:

mencoder -of help

以便列出你机器上相应版本的MEncoder所支持的 所有容器。 如下选项也是可用的

容器格式:

容器格式名称描述
lavflibavformat 支持的一种容器
avi音-视频混合
mpegMPEG-1及MPEG-2节目流
rawvideo原始视频流(未经混合 - 只含一视频流)
rawaudio原始音频流(未经混合 - 只含一音频流)

AVI容器是MEncoder的基本容器格式,也就是说它能够 被最好的处理,MEncoder也是为之而设计。 如上所述,其他容器格式也可被使用,但你使用的时候可能遇到问题。

libavformat容器:

如果你选择了libavformat 来做输出文件的混编(通过使用-of lavf选项), 适当的容器将由文件扩展名而定。 你也可以通过libavformatformat选项强制一种容器格式。

libavformat容器名称描述
mpgMPEG-1及MPEG-2节目流
asf高级流格式
avi音-视频混合
wav波形音频
swfMacromedia Flash
flvMacromedia Flash视频
rmRealMedia
auSUN AU
nutNUT开放容器(实验中,不兼容标准)
movQuickTime
mp4MPEG-4格式
dvSony数字视频容器

如你所见,libavformat允许 MEncoder把媒体混合到各种格式的容器内。 不巧的是,因为MEncoder从开始设计的时候 没有支持AVI之外的其他容器,你要小心最终生成的文件。 请多次检查以确认音频/视频同步是正确的以及文件能在 MPlayer之外的播放器中播放。

例 13.1. 编码为Macromedia Flash格式

生成Macromedia Flash视频,以便在安装有Macromedia Flash插件的网页浏览器中播放:

mencoder input.avi -o output.flv -of lavf \
    -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc \
    -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3