.dat 文件和 .mpg 文件的区别
leaf_zhou_8@hotmail.com
http://www.minshida.com
常常有人问.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 文件就是一个数据包。
其次,由于分包大小的不同,所以解复用时也有些差别。通常情况下,能解 .dat文件的程序都能解 .mpg文件。这种情况需要他们有一个共性,那就是都以 0x000001BA 为系统的包头。因为一旦以0x000001BA 开头,就意味着同时包含音频数据和视频数据,如果没有音频数据,则以0x000001B3 开头,否则就没有必要加入系统头。