MPEG 2 程序流文件的分析器






4.84/5 (37投票s)
2004年4月13日
3分钟阅读

196070

4904
一个用于解释 MPEG 2 文件的简单程序。
引言
此程序是关于将 MPEG 2 电影文件解复用到其基本数据包的。该程序是一个独立的版本,是我在 TS_Constructor 程序之后开发的,代表了为 HDTV 标准复用基本流的下一步。
概念
您当然知道,任何类型的电影文件都必须包含特定的信息(音频、视频、数据和其他内容)。此程序的作用是识别并列出关于 MPEG 2 标准文件的详细信息。每个电影文件都以特定的数据包编码。每个数据包都有一个用途:您有视频数据包、音频数据包、流特定数据包(如 PACK 标头、系统标头或 PSM-程序流映射数据包)。视频和音频数据包通常构成电影文件的 ES(基本流),并以 PES(打包基本流)数据包编码。一个或多个 PES 被视为 PACK,由 PACK 标头分隔,如下图所示,它解释了 MPEG 2 流是如何组成的
程序
PS_Analyzer 统计输入 MPEG 2 文件中每种类型的数据包。计数会显示在屏幕上,而每个数据包的详细信息(类型、数量、大小、SCR、PTS、DTS)以及整体统计信息会列出到用户指定的一个输出文本文件中。请注意,SCR 代表系统时钟参考,存在于每个 PACK 标头中,PTS 代表演示时间戳,指示解码器何时显示特定的图片或声音,DTS 代表解码时间戳,指示解码器何时解码某个图片或声音,因为 MPEG 2 文件中图像的顺序与作为电影显示时的观看顺序不同。所有这些值都以毫秒为单位给出。这个概念根本不是什么新鲜事,您会在 BBMPEG 项目的 BBTOOLS 源代码中找到相同的想法。区别可能在于,这并非控制台应用程序,而是专门为 MPEG 2 文件(也称为程序流)开发的。该程序虽然不够花哨,但肯定实用且易于使用。它仅包含两个窗体,一个主窗体和一个 BROWSER 窗体,用于帮助检索程序中不同位置的 MPEG 2 文件。
主窗口(启动时)
这是程序启动时的样子。
主窗口(处理文件后)
这是主窗口在成功处理文件后的样子。
浏览窗口
这是用于更改当前目录的浏览窗口。
输出文本文件
这是在处理 MPEG 2 流后,您将在输出文本文件中看到的内容
在文件开头。
在文件末尾。
作者说明
此程序可能非常有用。除了提取 MPEG 2 文件的信息外,稍作修改后,它还可以用于读取任何类型的电影或将电影解复用到基本流(音频和视频组件)。缺点可能在于,注释大多用罗马尼亚语,但鉴于提供的 MPEG 2 组织图和 C# 类的易用性,我希望破译源代码不会太难。
对于有关此程序的印象或与此主题相关的讨论,请随时通过电子邮件与我联系 (ro_angel_bv@hotmail.com 或 ro_angel_bv@fastmail.fm)。