|
在这一篇我们了解Mencoder命令的结构,以及各个部分的逻辑关系,作为一个业余用户,全部了解所有的音频视频知识是不现实的,想把Mencoder玩透可能性也是不大的。只要把Mencoder基础的东西掌握好,日后需求有变化的时候,也可以很快学习另外的知识。
好了,转入正题,mencoder唯一复杂的地方在于命令后面的参数,不过无论参数如何复杂,都是由6个部分组成,这点需要牢记。
1 命令本身
2 源文件
3 输出文件,参数是 -o ,例如 -o dst.avi
4 -of 部分
5 -oac 指定音频编码方式
6 -ovc 指定视频编码格式
例子: mencoder 源文件 -o 输出文件 -of (参数) -oac (参数) -ovc (参数)
利用这6个部分,我们就可以压制或者转换视频.但这里有4个特殊的细节需要注意.
第一个细节是 -of 参数,这是指定"输出容器"的选项.在Mplayer官方手册的中文文档上,由于有些概念的翻译可能不甚准确,也由于我个人对音频视频知识的缺乏,对这个参数的理解费了相当的时间.
当初是在windows上接触mencoder的,可能我获得的编译版本有问题,help参数得到的信息很有限.后来在debian下用 mencoder -of help 和 mencoder -ovc help 查看帮助后,理解如下.
当用 -of help 得到一句关键提示:Available output formats
当用 -ovc help得到: Available codecs
那么这样就相当清楚了, -of 就相当于指定"容器格式", -ovc 就相当于指定"编码格式"了.结合官方中文文档上的一句话:mencoder从一开始就是为avi设计的... ,用 -of help 得到的也是5个选项,
Available output formats:
avi - Microsoft Audio/Video Interleaved
mpeg - MPEG-1/2 system stream format
lavf - FFmpeg libavformat muxers
rawvideo - (video only, one stream only) raw stream, no muxing
rawaudio - (audio only, one stream only) raw stream, no muxing
用-ovc help得到的信息是
Available codecs:
copy - frame copy, without re-encoding. Doesn't work with filters.
frameno - special audio-only file for 3-pass encoding, see DOCS.
raw - uncompressed video. Use fourcc option to set format explicitly.
nuv - nuppel video
lavc - libavcodec codecs - best quality!
vfw - VfW DLLs, read DOCS/HTML/en/encoding-guide.html.
qtvideo - QuickTime DLLs, currently only SVQ1/3 are supported.
libdv - DV encoding with libdv v0.9.5
xvid - XviD encoding
x264 - H.264 encoding
也就是说,mencoder并不是直接支持所有的容器(格式),有些容器(格式)比如mp4,只是从FFMpeg那里借过来的.在这里,我们需要知道上述的容器之一 LAVF,实际上这是间接使用FFmpeg的,而非Mendoer本身.
另有一个细节是 -endpos 60 ,意即在第60秒的地方结束编码,这个位置也可以跟其它的全局参数(任何在mplayer播放时指定的参数,都可以在这个位置给出),据说通过这一个参数可以在编码中延伸出非常多的技巧,这些技巧是什么呢,留待以后验证。我们只学习基本的mencoder指令,满足一般的需求。
第四个细节就是-of和-ovc这两个部分的逻辑关系,以及由此产生的一些实际问题,比如根据网上搜索得到的情况来看,用mp4容器封装x264编码似乎效果不是很好。
在上面的命令中,两个括号(音频参数)和(视频参数)就是我们要学习的地方,当然了,最为复杂的也就是这两个地方。
那么,现在,从那里开始我们的Mencoder之旅呢?
首先是应该找一段没有版权的视频,还有就是确定一个方向.我的方向就是寻找合适的编码格式,在尽量不影响音频视频质量的情况下,减少文件的体积.
我当初是用FFmpeg的一个图形前端WinFF(跨平台,兼容Linux和Windows),无意中将一个AVI容器+xVID编码的文件,利用x264编码减少了2/3的体积,也鼓励了自己继续学习mencoder. |
|