LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 796|回复: 0

Mencoder学习手记之二 - 最初的理解

[复制链接]
发表于 2010-5-13 00:07:22 | 显示全部楼层 |阅读模式
在这一篇我们了解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.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表