IsaacZ 发表于 2005-12-1 14:56:58

.dat 文件和 .mpg 文件的区别

本帖最后由 IsaacZ 于 2011-2-1 18:18 编辑

转贴:
  常常有人问.dat文件和.mpg文件有什么区别?这个问题也曾困扰了我很长的一段时间。现在终于有所领悟,不敢独享,介绍给大家。
  首先,.dat 文件和 .mpg 文件都是符合MPEG1压缩标准的音视频数据流(当然也可以没有音频),但是他们的数据分包大小有所区别。.dat 文件是刻在VCD盘片上的数据,为了方便光盘数据的存取,所以就遵循了VCD刻录的标准,每个数据包的大小为2324个字节,也就是正好一个扇区存储空间的大小。VCD碟片是由一个或多个音轨组成。第一个轨道是一个小的2048字节/扇区的数据轨,有一个iso9660文件系统,通常包含Windows VCD播放程序,但可能还有其他信息 (例如:图像,文字等等)。如果有图片,多半是歌曲的目录和制作公司的宣传图片。第二个与之后的轨道是未处理的2324字节/扇区的MPEG(电影)轨,每个扇区包含一个MPEG PS数据包而没有文件系统。通常我们看到的约600 MB的.dat文件,其实它不是一个文件,这就是所谓的ISO通道,用来使Windows能够处理这样的轨道(Windows根本不允许程序直接访问未处理的设备)。在播放时,光驱会顺序读取每个扇驱,而形成一个连续的MPEG(电影)数据流。因此,在Linux下你是不能复制或者播放这些文件。而 .mpg 文件不是为了刻成VCD盘而准备的数据,所以数据包可大也可以很小。常常会遇到这样的情况:整个 .mpg 文件就是一个数据包。
  其次,由于分包大小的不同,所以解复用(demultiplex)时也有些差别。通常情况下,能解 .dat文件的程序都能解 .mpg文件。这种情况需要他们有一个共性,那就是都以 0x000001BA 为系统的包头。因为一旦以0x000001BA 开头,就意味着同时包含音频数据和视频数据,如果没有音频数据,则以0x000001B3 开头,否则就没有必要加入系统头。

  leaf_zhou_8@hotmail.com
  http://www.minshida.com


IsaacZ注:解复用(demultiplex)应该是指在播放时先用分离器分离成基本流的过程。参考:
[教程] [原创] 视频的“分离”与“合成”、“编码”与“解码”浅析

客人 发表于 2005-12-23 00:38:08

谢谢 !!

IsaacZ 发表于 2006-3-18 14:39:30

VCD的视频压缩格式是MPEG-1,音频压缩格式是MP2(MP2G-1 Audio Layer2,MP3的上一层音频压缩格式),但在VCD影碟中的音、视频文件是*.DAT文件,而不是*.MPG文件。DAT和MPG文件二者有何区别呢?简单地说MPG文件是适用于电脑的文件格式,而DAT文件是适应VCD规范的文件格式,两者略有区别,但非常接近。因此可以通过修改扩展名的方式,把*.DAT文件直接变更名称为*.MPG文件即可。

客人 发表于 2006-5-24 03:11:28

页: [1]
查看完整版本: .dat 文件和 .mpg 文件的区别