伤心的笔 发表于 2012-6-22 10:21:16

MKV文件更节约空间

本帖最后由 伤心的笔 于 2012-6-29 20:42 编辑

本人原创。
有这么一个文件:
F996.dvddata(使用小日本5提取,即标准的VOB文件,只是后缀名不同)
大小为:1.84 GB (1,983,062,016 字节)
这个MPEG文件内包含以下五条媒体流:
视频流(0x00)-MPEG-2 视频 720×576 25 fps for 9500kbps   ——分离后:0x00.m2v 1.59 GB (1,712,375,016 字节)
音频流(0x80)-杜比数字 48kHz 2ch for 192kbps                  ——分离后:0x80.ac371.4 MB (74,912,541 字节)
音频流(0x81)-杜比数字 48kHz 2ch for 192kbps                  ——分离后:0x81.ac371.4 MB (74,912,541 字节)
音频流(0x82)-杜比数字 48kHz 2ch for 192kbps                  ——分离后:0x82.ac371.4 MB (74,912,541 字节)
字幕流-VobSub                                                ——分离后:F996.idx+F996.sub 共 2.79 MB (2,934,811 字节)

使用计算器计算五条媒体流的体积和,得:1,940,047,450字节
用封装后的VOB文件体积减去五条媒体流的体积和,得:43,014,566字节 ——即41.02MB
由此可见,将一条视频流、三条音频流、一条字幕流使用VOB格式封装,冗余数据约为四十多兆字节。

使用Mkvtoolnix 2.4将这五条媒体流直接封装后,得到:F996.mkv1.80 GB (1,939,945,914 字节)
用封装后的MKV文件体积减去五条媒体流的体积和,得:-101536字节——即-99.15625KB
你没有看错,是负数!
由此可见,将一条视频流、三条音频流、一条字幕流使用VOB格式封装,可以节约几十字节的数据。

也就是说,同样的媒体流,使用MKV文件封装,要比用MPEG-2系统流节约几十兆字节!这样有什么好处呢?节约磁盘空间;如果是在网络上传播,可以节约更为珍贵的空间和时间。


伤心的笔 发表于 2012-6-22 10:30:55

本帖最后由 伤心的笔 于 2012-6-29 20:48 编辑

别小瞧这几十兆,积少成多的力量你懂得!如果你收藏了约100GB的福尔摩斯DVD原盘,而且是抛弃菜单只提取出VOB文件存储的话,使用MKV可以节约约2.17GB空间!

下面我把我试验用的几个文件的媒体信息贴上来:

F996.dvddata (F996.vob)
General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\F996.dvddata
Format                           : MPEG-PS
File size                        : 1.85 GiB
Duration                         : 52mn 1s
Overall bit rate               : 5 082 Kbps

Video
ID                               : 224 (0xE0)
Format                           : MPEG Video
Format version                   : Version 2
Format profile                   : Main@Main
Format settings, Matrix          : Default
Duration                         : 52mn 1s
Bit rate mode                  : Variable
Bit rate                         : 4 305 Kbps
Nominal bit rate               : 9 500 Kbps
Width                            : 720 pixels
Height                           : 576 pixels
Display aspect ratio             : 4:3
Frame rate                     : 25.000 fps
Standard                         : PAL
Colorimetry                      : 4:2:0
Scan type                        : Interlaced
Scan order                     : Top Field First
Bits/(Pixel*Frame)               : 0.415
Stream size                      : 1.56 GiB (85%)

Audio #1
ID                               : 128 (0x80)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -80ms
Stream size                      : 71.4 MiB (4%)

Audio #2
ID                               : 129 (0x81)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -80ms
Stream size                      : 71.4 MiB (4%)

Audio #3
ID                               : 130 (0x82)
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -80ms
Stream size                      : 71.4 MiB (4%)

Menu


F996.mkv

General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\F996.mkv
Format                           : Matroska
File size                        : 1.81 GiB
Duration                         : 52mn 2s
Overall bit rate               : 4 970 Kbps
Encoded date                     : UTC 2012-06-29 12:29:53
Writing application            : mkvmerge v2.4.0 ('Fumbling Towards Ecstasy') built on Oct 11 2008 20:13:15
Writing library                  : libebml v0.7.7 + libmatroska v0.8.1

Video
ID                               : 1
Format                           : MPEG Video
Format version                   : Version 2
Format profile                   : Main@Main
Format settings, Matrix          : Default
Codec ID                         : V_MPEG2
Codec ID/Info                  : MPEG 1 or 2 Video
Duration                         : 52mn 2s
Bit rate mode                  : Variable
Bit rate                         : 4 295 Kbps
Nominal bit rate               : 9 500 Kbps
Width                            : 720 pixels
Height                           : 576 pixels
Display aspect ratio             : 4:3
Original display aspect ratio    : 4:3
Frame rate                     : 25.000 fps
Standard                         : PAL
Colorimetry                      : 4:2:0
Scan type                        : Interlaced
Scan order                     : Top Field First
Bits/(Pixel*Frame)               : 0.414
Stream size                      : 1.56 GiB (86%)

Audio #1
ID                               : 2
Format                           : AC-3
Format/Info                      : Audio Coding 3
Codec ID                         : A_AC3
Duration                         : 52mn 2s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -1s 360ms
Stream size                      : 71.5 MiB (4%)

Audio #2
ID                               : 3
Format                           : AC-3
Format/Info                      : Audio Coding 3
Codec ID                         : A_AC3
Duration                         : 52mn 2s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -1s 360ms
Stream size                      : 71.5 MiB (4%)

Audio #3
ID                               : 4
Format                           : AC-3
Format/Info                      : Audio Coding 3
Codec ID                         : A_AC3
Duration                         : 52mn 2s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Video delay                      : -1s 360ms
Stream size                      : 71.5 MiB (4%)

Text
ID                               : 5
Format                           : VobSub
Codec ID                         : S_VOBSUB
Codec ID/Info                  : The same subtitle format used on DVDs
Language                         : English

0x00.m2v

General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\0x00.m2v
Format                           : MPEG Video
Format version                   : Version 2
File size                        : 1.59 GiB

Video
Format                           : MPEG Video
Format version                   : Version 2
Format profile                   : Main@Main
Format settings, Matrix          : Default
Bit rate mode                  : Variable
Bit rate                         : 9 500 Kbps
Width                            : 720 pixels
Height                           : 576 pixels
Display aspect ratio             : 4:3
Frame rate                     : 25.000 fps
Standard                         : PAL
Colorimetry                      : 4:2:0
Scan type                        : Interlaced
Scan order                     : Top Field First
Bits/(Pixel*Frame)               : 0.916


0x80.ac3

General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\0x80.ac3
Format                           : AC-3
Format/Info                      : Audio Coding 3
File size                        : 71.4 MiB
Duration                         : 52mn 1s
Overall bit rate               : 192 Kbps

Audio
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Stream size                      : 71.4 MiB (100%)


0x81.ac3

General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\0x81.ac3
Format                           : AC-3
Format/Info                      : Audio Coding 3
File size                        : 71.4 MiB
Duration                         : 52mn 1s
Overall bit rate               : 192 Kbps

Audio
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Stream size                      : 71.4 MiB (100%)


0x82.ac3

General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\0x82.ac3
Format                           : AC-3
Format/Info                      : Audio Coding 3
File size                        : 71.4 MiB
Duration                         : 52mn 1s
Overall bit rate               : 192 Kbps

Audio
Format                           : AC-3
Format/Info                      : Audio Coding 3
Duration                         : 52mn 1s
Bit rate mode                  : Constant
Bit rate                         : 192 Kbps
Channel(s)                     : 2 channels
Channel positions                : L R
Sampling rate                  : 48.0 KHz
Stream size                      : 71.4 MiB (100%)


F996.idx


F996.sub
General
Complete name                  : G:\试验\福尔摩斯Disc 1\F996\F996.sub
Format                           : MPEG-PS
File size                        : 2.77 MiB
Duration                         : 49mn 6s
Overall bit rate               : 7 897 bps

Text
ID                               : 32 (0x20)
Format                           : RLE
Format/Info                      : Run-length encoding
Duration                         : 49mn 6s



伤心的笔 发表于 2012-6-29 20:50:26

本帖最后由 伤心的笔 于 2012-6-30 15:41 编辑

我第一次测试时,忘记了VOB文件中的SUB字幕,封装时,MKV文件没有包含SUB字幕,体积要比一条视频流三条音频流体积和大大约2MB。加入SUB重新封装一次后,体积居然比原媒体流体积之和小!十分不可思议。
探究了一下:
将0x82.ac3单独封装成0x82.mka ,体积增大了311,887字节,即约304.58KB
将0x00.m2v单独封装成0x00.mkv ,体积增大了1,371,873字节,即约1.31MB
将F996.idx+F996.sub封装成F996.mks ,体积减小了1,865,977,即约1.78MB
由此可见,MKV文件擅长压缩SUB字幕。即便是MPEG-2视频流与AC-3音频流,冗余数据也比MPEG-2系统流好得多。

伤心的笔 发表于 2012-8-15 23:35:24

对于MKV可以压缩SUB字幕的问题,今天我从mkvmerge的帮助文件中得到了证实:
Matroska 独具一个强大的无损压缩算法的轨道压缩系统。压缩可以用于任何轨道,但是某些播放器只支持 VobSub 轨道的这个功能。这是它的最大的用处,其他轨道尤其音频和视频轨道都是压缩过的,所以额外再压缩也不会有什么作用。对于 VobSubs,如果使用 zlib 压缩方式你可以多得到 30% 的压缩比。所以它是 VobSub 轨道的默认压缩方式。
页: [1]
查看完整版本: MKV文件更节约空间