DVD 基础知识

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

使 DVD 对消费者有吸引力的功能(无缝分支、多种语言、家长控制、卡拉OK 支持和多个角度)也使开发人员的工作变得更加复杂。 DVD 播放器不仅必须播放音频、视频和子图片流,还必须跟踪光盘当前允许的导航选项,并正确处理多种类型的用户命令。 DVD 导航器可保护你免受这种复杂性的很大限制,同时使你能够创建功能齐全的 DVD 应用程序。 无需参考 DVD 规范来有效地使用 DVD 导航器 API,但需要了解基本的 DVD 导航概念。

导航控件数据

DVD-Video光盘上的音频和视频数据定期与各种导航控制数据交错。 此数据可能是指示玩家执行某些操作的指令,例如移动到光盘上的某个特定位置,也可能是通知玩家的信息性标记,例如,后面的内容具有比上一个内容更高的家长管理级别,或者禁用了章节跳过操作。 玩家将此信息中继到应用程序,应用程序负责对其执行操作。 与视频光盘相比,这些导航标记为 DVD 提供了更高级别的用户交互性。 DVD 播放器应用程序必须处理源自光盘的事件以及源自用户的事件。

音频、视频和子图片数据

DVD-Video光盘包含三种主要类型的流:视频、音频和子图片。

  • 视频流最多可以包含九个“角度”,可将其视为子流。 DVD 作者可以包含多个角度,无论他们希望向观看者提供从中查看同一场景的相机角度的选择。 一次只能有一个角度处于活动状态。 视频流还包含第 21 行隐藏式字幕数据(如果存在)。
  • 最多可以有 8 个单独的音频流或曲目,最多提供 8 个多声道配乐,并允许 DVD 卡拉OK光盘使用多声道音频。
  • DVD 最多可以包含 32 个子图片 流。 这些位图由压缩的 16 色位图和 alpha 通道组成,这些位图覆盖在视频顶部。 通常,子图片流包含字幕和菜单按钮,尽管它们也可能包含其他图形。 子图片流可能具有指定的语言。 某些子图片内容始终显示,而某些子图片内容仅在用户启用时才显示。

请注意,子图片流中的标题与第 21 行隐藏式字幕不同。 隐藏式字幕(面向听觉困难观众)嵌入在视频信号中。 它们完全由字符串组成。 另一方面,子图片标题是图形位图。 在消费者设备上,隐藏式字幕由电视机显示,而子图片流由 DVD 播放器呈现。 DVD 可能包含两种类型的描述文字。

标题和章节

DVD 中的视频内容分为 标题菜单。 游戏进一步划分为多个单元,DVD 规范 (PCT) 调用 部分游戏 。 更常见的情况是,这些称为 场景章节。 (DirectShow 文档使用术语 chapter.) 查看者可以导航到标题中的特定标题或章节。

DVD 的作者决定如何将内容划分为标题和章节。 当 DVD 包含故事长度的电影时,整个电影通常放在一个标题中,分为各个场景的章节。 DVD 上的附加功能(如预告片或删除的场景)放置在单独的游戏中。 但是,这些划分是任意的,并且许多 DVD 的组织方式不同。

光盘上最多可以有 99 个标题,光盘作者可将标题划分为多达 999 个逻辑章节。 在 DVD 上的大多数故事片中,电影内容被格式化为一系列章节,这些章节会自动一个接一个地播放。 在此类光盘上,章节结尾标记包含一个分支指令,指示玩家继续播放序列中的下一章。 这些游戏称为 一个顺序 PGC 游戏。 (PGC 代表程序链,这是属于一组章节的另一个名称。此术语未在 DVD 导航器文档中使用。) 在包含其他类型的内容的光盘(如卡拉OK光盘)上,章节结尾标记可能会指示玩家显示菜单,或者可能只是指示玩家停止。

DVD 应用程序开发人员使用标题和章节编号跳转到光盘上的特定点。为了获得精细的访问,可以使用游戏编号和时间代码。 时间代码只能与一个顺序 PGC 标题一起使用,因为其他类型不包含时间代码映射。

菜单

DVD 规范定义了六种类型的菜单:

  • 标题。 标题菜单是要显示的第一个菜单。 通常,它具有用于选择标题的按钮。 标题菜单也称为 视频管理器菜单。 DVD 上只有一个游戏菜单。
  • 根。 根菜单是游戏的顶级菜单。 每个游戏都可以有一个根菜单。 接下来的四个菜单是根菜单中的子菜单。 根菜单也称为 视频标题集菜单。 根菜单通常具有导航到标题集中任何标题的按钮。 此外,它可以具有子菜单,使用户能够选择音频流、相机角度、子图片流或章节的选项。 但是,这些子菜单不用于大多数 DVD。
  • 子图片。 子图片菜单选择子图片流。
  • 音频。 音频菜单选择音频流。 通常,此菜单使查看者能够选择语言轨道。
  • 角度。 “角度”菜单选择相机角度。
  • 章。 章节菜单(也称为 PTT 菜单)选择标题中的章节。

大多数菜单都有按钮,可以选择和激活这些按钮。 选择按钮会更改按钮的外观。 激活按钮会触发 DVD 命令,例如显示另一个菜单或开始播放。

家长管理级别

全部或部分 DVD 光盘都可以使用家长管理级别 (PML) 编号为 1 到 8 的 PML 进行编码。 八个是限制性最强的级别, (成人只有) ,一个是所有年龄) 限制最少的 (。 其思路是防止儿童在未经家长同意的情况下观看成人内容,同时允许成人watch儿童安全的内容。 在美国和加拿大,级别映射到 MPAA (G、PG、PG-13、NC-17) 的分级系统,但在其他国家或地区并非如此。

由于章节可以在逻辑上存在于家长块中,因此标题中可能有两个版本的同一章节,每个版本分配了不同的 PML 和不同的家长块。 例如,登录并播放光盘的孩子将看到第 3 章的一个版本,而登录的成人将看到不同的版本(假设应用程序支持 PML)。

标题或章节还可以包含临时 PML,其内容在整个标题或章节的分级高于 PML。 这意味着一个游戏可能具有多个家长级别。 临时 PML 通常创作为角度块,因此电影中的场景可能有两个版本,一个版本针对年轻观众,一个是成人。

玩家应用程序负责强制实施家长级别。

术语 是指 DVD 播放器的内部状态;它不是在光盘上创作的内容。域很重要,因为某些 DVD 命令仅在某些域中有效。 DirectShow 提供了一种查询当前域并在域更改时收到通知的方法。 定义了以下域:

  • 第一个播放。 在此域中,DVD 播放器刚刚开始播放 DVD。 进入“首次播放”域后,播放器将切换到另一个域-菜单域或游戏域,具体取决于光盘。
  • 视频管理器菜单。 播放器显示视频管理器菜单,也称为标题菜单。
  • VTS 菜单。 播放器显示与视频标题集关联的菜单,根菜单或子菜单 (音频、子图片、角度或章节) 。
  • 标题。 玩家正在游戏中播放视频。
  • 停止。 玩家未显示任何内容。 (严格地说,DVD 规范不将此状态称为域,但它可以被视为 one.)

可以将域视为 DVD 播放器监视的状态变量,以便跟踪播放器当前从光盘中读取的内容类型。DVD 播放器使用域来避免向 DVD 驱动器发出无意义的命令。

用户操作控件

用户操作控件 (UOP) 是光盘上的标记,DVD 作者可以插入任何位置以限制用户的导航选项。 大多数光盘都遵循标准 UOP 限制。 例如,大多数光盘不允许观看者在“首次播放”域中快进或显示菜单。 原则上,每个光盘都可以在光盘上的任意点插入任何 UOP 命令,即使命令在其他情况下在当前域中有效也是如此。 例如,可以创作光盘以禁止特定游戏中的快速转发,或阻止在用户进入游戏域后显示特定菜单。 DVD 导航器符合光盘中的所有此类命令,并且不允许应用程序替代光盘的 UOP 控件。

DVD 应用程序