发新话题
打印

mencoder+mkvmerge压制 idx/sub 字幕到AVI影片

mencoder+mkvmerge压制 idx/sub 字幕到AVI影片

mencoder转换影片格式很方便,但不能处理idx/sub这种图形字幕,只能处理srt字幕。
试试mencoder -vobsub,根本没这个参数啊,虽然mplayer -vobsub是可以加载idx/sub字幕的,
看来,mencoder和mplayer的参数不是全等的。

怎么办,两种办法,一种是用软件把idx/sub字幕转换成srt,这种软件在网上搜索一下可以找到,windows下的常用,Linux下也有,我试着编译了一下,不过没有通过。其实这种方法不算很好,idx/sub是图形字幕,转换成srt用的方法类似扫描仪的文字识别OCR,原理一样,效果不是很好,错误不少,视觉效果不佳。
今天我们用另一种办法:
用mkvmerge把 idx/sub和AVI文件封装成mkv容器格式,然后呢,再愿意用mencoder把mkv转换成avi也行,不再转换成avi,用mplayer直接看mkv也不错!
mkvmerge 下载地址:http://www.bunkus.org/videotools/mkvtoolnix/downloads.html
各种操作系统的安装包都提供,我是直接下载的源码自行编译的,编译需要的依赖在这一页有:
http://www.bunkus.org/videotools/mkvtoolnix/source.html
编译安装很简单就做完了。

然后,开始运行一下:
mkvmerge -o movie.mkv movie.avi movie.idx
就可以封装生成movie.mkv文件了。
注意:要把movie.avi movie.idx movie.sub 三个文件放在一个目录下,我试验中发现,还得把avi/idx/sub三个文件搞成一样的名字才能成功把字幕封装进去!为免麻烦,干脆四个文件avi/idx/sub/mkv都起成一样的名字吧!

速度很快,一个几百兆的大片很快就完工了,用mplayer 播放一下mkv试试,字幕封装进去了吧!

下面,愿意把mkv转成avi也行,不转也可以直接看mkv,呵呵。

补充说明:
mkv是什么?
MKV的简介
一种后缀为MKV的视频文件频频出现在网络上,它可在一个文件中集成多条不同类型的音轨和字幕轨,而且其视频编码的自由度也非常大,可以是常见的DivX、XviD、3IVX,甚至可以是RealVideo、QuickTime、WMV这类流式视频。实际上,它是一种全称为Matroska的新型多媒体封装格式,这种先进的、开放的封装格式已经给我们展示非常好的应用前景,甚至有人把它看成是AVI的替代者!

        MKV其实是Matroska的一种媒体文件, Matroska是一种新的多媒体封装格式,它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中!

mkv不是一种压缩格式,mkv实际上是一种新型多媒体封装格式,也称多媒体容器 (MultimediaContainer)。它不同于DivX、XviD等视频编码格式,也不同于MP3、Ogg等音频编码格式。MKV只是为这些音、视频提供外壳的“组合”和“封装”格式。换句话说就是一种容器格式,常见的AVl、VOB、MPEG、RM格式其实也都属于这种类型。但它们要么结构陈旧,要么不够开放,这才促成了MKV这类新型多媒体封装格式的诞生。

        Matroska媒体定义了三种类型的文件:MKV是视频文件,它里面可能还包含有音频和字幕;MKA是单一的音频文件,但可能有多条及多种类型的音轨;MKS是字幕文件。这三种文件以MKV最为常见。

        MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,甚至连非常封闭的RealMedia及QuickTime这类流媒体也被它囊括进去,可以说是对传统媒体格式的一次大颠覆,几乎变成了一个万能的媒体容器。

播放MKV并不需要专用的播放器,任何基于DirectShow的播放器都能播放它,如常见的Media PlayerClassic、BSplayer、ZoomPlayer播放器等,甚至包括Windows Mediaplayer,仅需安装相应Matroska解码分离器插件即可。推荐下载HappyShow这个解码器集成软件。

MKV的特点
Matroska最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,甚至囊括了RealMedia及QuickTime这类流媒体,可以说是对传统媒体封装格式的一次大颠覆!它现在几乎变成了一个万能的媒体容器,目前它所能封装的视频、音频、字幕类型包括:

        AVI文件,包括采用DivX、XviD、3ivX、VP6视频编码,及PCM、MP3、AC3等音频编码的AVI
        RealMedia文件,包括RealVideo和RealAudio
        QuickTime的MOV及MP4视频
        Windows Media文件,包括ASF、WMV格式
        MPEG文件,包括MPEG-1/2的M1V、M2V
        Ogg/OGM 文件,包括Ogg Vorbis、OGM、FLAC文件
        Matroska Media文件,包括MKV、MKA、MKS文件
        WAV、AC3、DTS、MP2、MP3、AAC/MP4音频
        SRT、USF及SSA/ASS文本字幕
        SubVob图形字幕,后缀为IDX、SUB
        BMP图形字幕,以一组BMP图片及时间码构成的字幕 。

        此外,Matroska文件中还可包括章节、标签(Tag)等信息,甚至还可加上附件!需要指出的Matroska所谓的封装AVI、RM、MOV等媒体,但它并不是简单将它们不加改变的合并到Matroska中,而是将它们的音视频流进行了重新组织。
Matroska媒体定义了三种类型的文件:MKV是视频文件,它里面可能还包含有音频和字幕;MKA是单一的音频文件,但可能有多条及多种类型的音轨;MKS是字幕文件。这三种文件以MKV最为常见。
Matroska加入AVI所没有的EDC错误检测代码,这意味着即使是没有下载完毕的MKV文件也可以顺利回放,这些对AVI来说完全是不可想象的。虽然Matroska加入了错误检测代码,但由于采用了新的更高效的组织结构,用MKV封装后的电影还是比AVI源文件要小了约1%,这就是说即使加上了多个字幕,MKV文件的体积也不可能比AVI文件大。
Matroska支持可变帧率(VFR,即Variable FrameRate)的视频编码,这种VFR视频的帧率是不固定的,它可在动态画面中使用较大的帧率,而在静态画面中使用较小的帧率,这样可以有效的减少视频文件的体积,并改善动态画面的质量。它的作用比目前广泛使用的VBR(可变码率)更为明显。

  看看目前比较流行的多媒体容器类型,例如AVI,它可以容纳多种类型的视频编码和音频编码,像VP6、DivX、XviD等视频编码和PCM、MP3、AC3等音频编码; VOB则是另一种特点更为鲜明的媒体容器,它可容纳MPEG-2视频流、多个AC3、DTS、THX、PCM音频流、多个不同语言的图形字幕流。

Matroska最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,即使是非常封闭的RealMedia及QuickTime也被它包括进去了,并将它们的音视频进行了重新组织来达到更好的效果。可以说是对传统媒体格式的一次大颠覆!它现在几乎变成了一个万能的媒体容器。

格式   错误检测    可变帧率     软字幕   流式传输         菜单      非微软平台
MKV    有           支持        支持    即将支持       即将支持       支持
AVI     无          不支持      不支持    不支持        不支持       支持不够


多数视频文件都是相同时间内越大质量越高 分辨率越高


相同码率的MKV和AVI播放效果基本差不多,MKV里面能够封装比AVI更多条视频音频,对机器要求稍高。

一样容量的avi 和mkv的话 avi的色彩更细腻 画面更稳定~~ 容量大了可能差别不大 但是 一个DVD压到1.2G 或 2.1G那么大的mkv 或 avi就很明显了~~~ avi的要自然细腻多了

[ 本帖最后由 问天 于 2008-3-25 09:52 编辑 ]

TOP

补充一下,mplayer播放mkv时,要加参数-sid * 或-slang *,
可以先mplayer movie.mkv 看一些提示,因为mkv文件是多个轨道组成,默认只播放第一轨,而字幕一般在后面的轨道上,看看提示在哪个轨道上,加上-sid或-slang参数指定播放就可以显示字幕了。
如果再用mencoder把封装好的mkv文件转换成带字幕的avi或mp4或mpg等,也要加上-sid或-slang参数,否则会丢失轨道(字幕)。

TOP

发新话题