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 光盘上的音频和视频数据定期与各种导航控件数据交错。 此数据可能是指示玩家执行某些作的说明,例如移动到光盘上的某个特定位置,或者可能是一个仅信息性的标记,告知玩家,例如,后面的内容具有比上一内容更高的家长管理级别,或者禁用章节跳过作。 玩家将此信息中继到应用程序,应用程序负责处理它。 与视频 CD 相比,这些导航标记是 DVD 其更高级别的用户交互性的一部分。 DVD 播放器应用程序必须处理源自光盘的事件,以及源自用户的事件。

音频、视频和子图片数据

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

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

请注意,子图片流中的标题与第 21 行隐藏式字幕不同。 隐藏式字幕,旨在用于听力硬的观众,嵌入在视频信号中。 它们完全由字符串组成。 另一方面,子图片标题是图形位图。 在使用者设备上,隐藏式字幕由电视机显示,而子图片流由 DVD 播放器呈现。 DVD 可以包含这两种类型的字幕。

标题和章节

DVD 中的视频内容分为 标题菜单。 游戏进一步划分为 DVD 规范 游戏(PTT)部分调用的单位。 通常,这些称为 场景章节。 (DirectShow 文档使用术语章节)。查看器可以导航到标题中的特定标题或章节。

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

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

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

菜单

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

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

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

家长管理级别

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

由于章节在家长块内可以逻辑存在,因此标题中可能有两个相同章节的版本,每个章节分配了不同的 PML 和不同的家长块。 例如,登录并播放光盘的子级将看到第 3 章的一个版本,如果应用程序支持 PML,则登录的成年人会看到其他版本。

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

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

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

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

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

用户作控件

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

DVD 应用程序