跳转到内容

MeGUI/计算机电影文件

来自维基教科书,开放世界中的开放书籍

计算机电影文件是包含音频和视频的计算机文件。电影文件由多个组件组成,这些组件在很大程度上是模块化的,这意味着它们可以轻松地替换为其他兼容的组件,而不会影响文件的其他部分。本页解释了不同类型的组件,并提供了它们的常见示例。

重要提示:本页(以及子页面)包含主观的质量比较。任何质量比较的最终决定权在于你的眼睛(或耳朵),所以对所有比较都持保留态度。

容器是文件中将所有内容整合在一起的部分。你把你的视频(比如实际的图像)、音频以及你想放入的任何其他东西都放在容器里面,就像你在 zip 存档中存储多个文件一样。

容器用于以下几个原因

  • 允许媒体播放器更好地理解其他组件
  • 允许将附加功能添加到文件中,例如
    • 流的索引
    • 元数据(有关内部流的信息)
    • 错误恢复功能
    • 章节和其他形式的元导航

容器子页面包含有关各种容器类型的更多信息。

视频流

[编辑 | 编辑源代码]

视频流包含有关实际显示的图像的数据(“视频文件”指的是音频和视频,但“视频流”指的是“视频文件”的图像组件)。基本上,它包含有关如何显示一系列静止图像的指令。

视频子页面上阅读有关大量视频格式的信息。

许多视频格式对可以显示的内容有限制。大多数视频编码在帧大小为Mod16时表现最佳。

音频流

[编辑 | 编辑源代码]

音频流(或流)包含视频文件的音频组件的数据。音频格式在标准与编码器方面与视频格式类似,因此请阅读该部分中有关标准与编码器的部分,以了解其工作原理。

音频子页面包含有关各种音频格式的一些额外信息。

在这种情况下,“字幕”指的是软字幕。在播放期间叠加在视频上的字幕,与直接编码到视频中的硬字幕相反。软字幕有很多优点(这里只概述了主要优点)

  • 你可以拥有多个字幕流(即不同的语言、不同的样式等等不厌其烦
  • 你可以打开和关闭字幕(例如,如果你的语言可用作音频流)
  • 视频保持不变,允许略高的压缩质量。

字幕子页面上阅读有关不同字幕格式的更多信息。

附加信息

[编辑 | 编辑源代码]

一些更高级的容器可以存储额外的内容,例如章节文件、嵌入字体等。继续阅读以了解其中的一些内容。

Matroska 作为一个很酷的小容器,允许你将任何你想作为附件的随机文件包含在内。想包含一个带有发布信息的文件吗?一个包含配乐的 zip 文件?DVD 封面?当然可以!你可以附加任何类型的文件。安装了 Haali 的分割器(DirectShow 事实上的 Matroska 分割器)后,你可以在相关文件的资源管理器属性窗口中查看这样附加的文件,并从那里提取它们。

嵌入式字体
仅在 Matroska 文件中可用。在混合 SSA/ASS 字幕时,有时你可能想使用目标计算机无法保证拥有的奇怪字体。如果将字体作为附件添加到 Matroska 文件中,VSFilter(DirectShow 事实上的字幕渲染器)将能够在播放字幕时使用这些字体。

非常简单易懂。不同的格式使用不同的章节样式:以下是一个 Matroska 的示例

<Chapters>
 <EditionEntry>
   <EditionUID>1</EditionUID>
   <EditionFlagHidden>1</EditionFlagHidden>
   <EditionFlagDefault>0</EditionFlagDefault>
   <ChapterAtom>
     <ChapterUID>1</ChapterUID>
     <ChapterFlagHidden>0</ChapterFlagHidden>
     <ChapterFlagEnabled>1</ChapterFlagEnabled>
     <ChapterDisplay>
       <ChapterString>Part A</ChapterString>
       <ChapterLanguage>eng</ChapterLanguage>
     </ChapterDisplay>
     <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
   </ChapterAtom>
   <ChapterAtom>
     <ChapterUID>2</ChapterUID>
     <ChapterFlagHidden>0</ChapterFlagHidden>
     <ChapterFlagEnabled>1</ChapterFlagEnabled>
     <ChapterDisplay>
       <ChapterString>Part B</ChapterString>
       <ChapterLanguage>eng</ChapterLanguage>
     </ChapterDisplay>
     <ChapterTimeStart>00:09:48.000000000</ChapterTimeStart>
   </ChapterAtom>
 </EditionEntry>

很复杂吧?以下是一个 OGG 格式章节的示例

CHAPTER01=00:00:00.000
CHAPTER01NAME=Chapter 1

好多了。当然,你可以用 Matroska 章节做更多的事情,这里就不详细说明了,只简要解释一下有序章节。

有序章节
这些基本上是也引用其他 Matroska 文件以进行部分播放的章节。例如,假设你正在编码一个电视剧。你可以剪掉每集的开头和结尾,并将其编码成两个独立的文件。然后,你可以在主要剧集文件中使用有序章节,让他们自动透明地加载回来。很不错。

变形标志

[编辑 | 编辑源代码]

在某些容器(MKV 和 MP4)中存储一个值的的能力,该值将反映文件在播放时的纵横比,换句话说,进行变形播放。假设你有一个 16:9 的电影,以 4:3 的纵横比编码。那么,当你混合成 MKV 时,你可以将播放比例指定为 16/9,你的媒体播放器将在播放时自动调整到正确的比例。

华夏公益教科书