DAT与MPG文件之间有什么区别(转)
DAT文件和MPG文 件有什么区别?
很多MTV都是.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当然不是同类文件,它们的文件头也是不一样。用WinHex分别打开正常的dat和mpg文件,察看它们的文件头信息,
DAT文件头是以“RIFF….CDXAfmt ” (….为任意字符)开头的,十六进制就是“5249 4646 XXXX XXXX 4344 5841 666D 7420” (XXXX为任意十六进制数值)。
MPG文件头以“0000 01BA”开头,对于大部分正常的KTV视频文件是“0000 01BA 2100”开头。
有些非正常的DAT、MPG文件在电脑上能够播放,但是刻录到光盘放到VCD/DVD机上却不能播放,就是在于文件头错误,机器不能正确识别(当然最新的机器可能识别能力要强点),在电脑上正常播放是借助了播放软件强大的纠错功能,可以跳过头文件直接读取视音频数据。
那么平常我们播放的时候怎么区别是DAT还是MPG文件呢。我们当然可以使用专门的编码软件来查看媒体文件,但是比较麻烦,而且不实际,总不能每次都用软件查看吧。其实大多数播放软件都提供了察看文件详细信息的功能,如暴风影音,KMP等。这里我使用KMP这款播放器,因为其提供的媒体文件的播放信息、滤镜信息非常详细,而暴风影音和WMP一样非常简单的信息。打开KMP的“高级播放信息”功能的快捷键是“Alt+Tab”。
下面我们来研究.dat和.mpg的视频区别,打开一个A.dat文件,显示的部分视频信息如下:
General
Complete name : A.dat
Format : CD Mode 2 / / CDXA/MPEG-1PS
Video
Codec : MPEG-1 Video
Codec settings/Matrix : Standard
然后打开一个B.mpg文件,显示的部分视频信息如下:
General
Complete name : B.mpg
Format : MPEG-1 Program
Format/Family : MPEG-1
Video
Codec : MPEG-1 Video
Codec settings/Matrix : Standard
很明了,虽然编码都是MPEG-1编码(这是肯定无疑的),但DAT文件显示的格式是CD Mode 2 / / CDXA/MPEG-1PS ,而MPG文件显示的格式是MPEG-1 Program,这就是区别,即使更改扩展名也不变。
而且DAT格式和MPG格式在大小上有区别,据我在XP平台试验的结果,同一文件转换的DAT格式比MPG格式文件要大一点点。我猜想原因是DAT文件特性决定的,由于DAT文件是划分为很多个大小为2324个字节的扇区存储的,在绝大多数情况下一个DAT文件不可能就是2234字节的整数倍,必然有多余的部分字节,而这多余的可能没有2234字节但是却按2234规格封装数据包,而且可能有连续很多个轨道的数据包都有空间冗余。而整个.mpg 文件就是一个数据包,你数据包有多大就占多少硬盘存储空间,数据是连续的,数据间没有冗余。另外,在Windows平台上看到的DAT文件比MPG大,这大的部分就是DAT文件冗余的空间,其实真正的数据流,也就是光驱读取VCD光盘每个扇驱,而形成一个连续的MPEG数据流和MPG文件数据应该是一样的,至少差别非常小,毕竟DAT和MPG之间是无法无损转换的。
以上是我的个人经验,在没有更好的解释之前,我只能就这么认为了。
DAT与MPG文件之间有什么区别(转)相关推荐
- dat和mpg文件的区别
.dat 文件和 .mpg 文件的区别 leaf_zhou_8@hotmail.com http://www.minshida.com 常常有人问.dat文件和.mpg文件有什么区别?这个问题也曾困 ...
- 分析DAT与MPG文件格式的区别
分析DAT与MPG文件格式的区别 原文较早,网易博客链接已失效,在此重新发布. DAT文件和MPG文件有什么区别? 很多MTV都是.dat 或者是 .mpg格式,用电脑播放软件播放的时候,这两个扩展名 ...
- dat文件和.mpg文件有什么区别?
常常有人问.dat文件和.mpg文件有什么区别?这个问题也曾困扰了我很长的一段时间.现在终于有所领悟,不敢独享,介绍给大家. 首先,.dat 文件和 .mpg 文件都是符合MPEG1压缩标准的音视频数 ...
- npm package.json文件中的依赖关系,devDependencies和peerDependencies之间有什么区别?
本文翻译自:What's the difference between dependencies, devDependencies and peerDependencies in npm packag ...
- ashx PHP文件 优劣,.NET_ashx介绍以及ashx文件与aspx文件之间的区别,ashx是什么文件?
.ashx 文件用于 - phpStudy...
ashx介绍以及ashx文件与aspx文件之间的区别 ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类 ...
- Docker映像和容器之间有什么区别?
本文翻译自:What is the difference between a Docker image and a container? When using Docker, we start wit ...
- 应用程序服务器和Web服务器之间有什么区别?
应用程序服务器和Web服务器之间有什么区别? #1楼 最大的不同是Web服务器处理HTTP请求,而应用程序服务器将在任意数量的协议上执行业务逻辑. #2楼 这取决于特定的体系结构. 某些应用程序服务器 ...
- java jar包和war包_java中jar包和war包之间有什么区别
原标题:java中jar包和war包之间有什么区别 jar包 简单地说,JAR(Java Archive)是一种包文件格式.JAR文件具有.jar扩展名,可以包含库.资源和元数据文件. 本质上,它是一 ...
- PHP和Node.js开发之间有什么区别
在很长一段时间内,决定在Node.js和PHP之间进行选择是一件很麻烦的事情,但对于后端程序员来说,这一直很麻烦,但它从未影响过开发人员.但是事情很快就发生了变化,现在开发人员必须选择其中之一.Nod ...
最新文章
- intellij idea 必知的debug功能
- C语言实现类似QQ聊天界面抖动功能
- 阿里云多个智物新品集体出道,持续加速产业智能化
- 详解C语言中 # 和 ## 的用法
- HTML5 FileReader API 测试(一)
- 25. PE结构-PE详解之资源
- 【springBoot】注解的详解
- HuggingFace学习2:使用Bert模型训练文本分类任务
- Spark与MR的区别
- env-FindClass()为NULL的一种解决办法
- 新版DAEMON Tools Lite打不开 bin 文件解决方法
- mybatis 3.x 缓存Cache的使用
- 苹果笔记本 麦克风设置
- Firefox OS开发指南
- 预训练模型 PLOME
- message的警告弹窗放在最上层
- 黑白双轨棋·改编(定子棋,终盘换子,在计算赢子的多少)
- 疫情下的网络舆情管控方案
- JS 逆向的时候 Python 如何调用 JavaScript 代码?「建议收藏哦!」
- 企业邮局在koomail里的设置方法