mencoder

      FD程序开发 2007-10-6 23:33

http://www.mplayerhq.hu/DOCS/HTML/zh_CN/menc-feat-selecting-codec.html

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

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

mencoder -ovc help

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

音频编码器:

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

是频编码器:

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

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

mencoder -of help

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

容器格式:

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

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

libavformat容器:

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

libavformat容器名称 描述
mpg MPEG-1及MPEG-2节目流
asf 高级流格式
avi 音-视频混合
wav 波形音频
swf Macromedia Flash
flv Macromedia Flash视频
rm RealMedia
au SUN AU
nut NUT开放容器(实验中,不兼容标准)
mov QuickTime
mp4 MPEG-4格式
dv Sony数字视频容器

如你所见,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


13.2. 选择输入文件或设备

MEncoder可以从文件或直接从DVD或VCD的盘片进行编码。秩序在命令行中包含文件名以便从文件进行编码,或 dvd://标题数vcd://轨道数以便从DVD标题或VCD轨道进行编码。如果你已经把DVD复制到你的硬盘上(你可以使用像dvdbackup 这样的工具,大多数系统上都有),然后想从副本进行编码,你仍需使用 dvd://语法,加上附带了指向DVD副本的根目录的 -dvd-device选项。 -dvd-device-cdrom-device选项也能用于覆盖用来直接从光盘中直接读取数据的设备的路径,如果缺省的 /dev/dvd/dev/cdrom在你的系统上步工作的话。

当从DVD进行编码时,最好是选其中的一章或几章进行编码。为此你可以使用-chapter选项。例如-chapter 1-4将只编码DVD中的1至4章。如果你针对包含1400MB数据的两张CD进行编码,这将非常有用,因为你可以确定只在一章的边缘处分割,而不是在一个场景中间。

如果你有张被支持的电视卡,你也可以通过播放电视节目的设备进行编码。使用tv://channelnumber为文件名,并用-tv配置各种截取选项。 DVB输入工作原理类似。

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}