Matroska (.mkv, .webm, .mka, .mk3d)
背景
-
- 注册的 MIME 类型:video/x-matroska
- 多媒体容器格式.
- 可包含多个视频、音频和字幕轨道.
- 作为灵活、可扩展和跨平台而设计.
- 支持各种视频音频编解码器.
- 扩展的 MCF 和 EBML,且作为 WebM 基础.
- 2002 年发布最初开源格式.
Import 与 Export
- Export["file.mkv",expr,elements] 通过将 expr 作为指定参数关联对待进行导出.
- Import["file.mkv"] 导入 Matroska 文件并返回一个 Video 对象.
- Import["file.mkv",elem] 导入指定参数.
- 导入格式可以用 Import["file","Matroska"] 或 Import["file",{"Matroska",elem,…}]指定.
- Export["file.mkv",expr] 将 expr 导出为 Matroska 格式.
- 以下表达式可以导出到 Matroska:
-
video 任意 Video 对象 AnimatedImage[…] AnimatedImage 对象的帧 Manipulate[…] 从 Manipulate 表达式生成的帧 {expr1,expr2,…} 图像、图形或光栅化表达式的列表 - 导出任意表达式列表时,每个表达式都被光栅化,并具有与其显示形式相同的光栅大小.
- Matroska 视频的长度由帧数和指定的帧率决定.
- 如果在 Manipulate 对象中设置书签,Export 将通过在书签中插值创建一个 Matroska 文件,其将保持 Manipulate 的速度和长度.
- Export["file.mkv",{elem1expr1,elem2expr2,…},"Rules] 使用规则指定导出的参数.
- $VideoEncoders 中列出了所支持的视频编码器.
- 请到以下参考页面了解完整的基本信息:
-
Import, Export 从文件导入或导出到文件 CloudImport, CloudExport 从云对象导入或导出到云对象 ImportString, ExportString 从字符串导入或导出到字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出到字节数组
Import 的参数
- 通用 Import 参数:
-
"Elements" 该文件可用的参数和选项列表 "Summary" 文件摘要 "Rules" 所有可用参数的规则列表 - 视频表示参数:
-
"ImageList" 表示为图像列表的帧 "Video" 表示为 Video 对象的视频文件 "VideoData" 每帧的原始位图数据数组 "VideoStream" 视频文件作为 VideoStream 对象处理 - Import 默认情况下,Matroska 格式使用 "Video" 参数.
- 一个视频文件可能包含多个视频、音频或字幕轨道。返回轨道数的元素:
-
"AudioTrackCount" 音轨数 "SubtitleTrackCount" 字幕轨道数 "VideoTrackCount" 视频轨道数 - 视频元数据参数:
-
"BitDepth" 用于表示文件中每个颜色通道的位数 "ColorSpace" 文件中使用的颜色编码 "FrameCount" 文件中的帧数 "FrameDurations" 每帧显示时间的列表 "FrameRate" 每秒显示的帧数 "RasterSize" 栅格尺寸 "VideoEncoding" 文件中使用的视频编解码器 - 音频相关参数:
-
"Audio" 核内 Audio 对象 "AudioChannels" 音频通道数 "AudioData" 音频样本数组 "AudioEncoding" 文件中使用的音频编解码器 "AudioFile" 核外 Audio 对象 "BitRate" 每秒位数 "SampleRate" 每秒音频样本数 - 字幕相关的参数:
-
"RawSubtitle" 字幕数据作为原始字符串导入 "SubtitleRules" 以 {int1text1,int2text2,…} 形式的样式化文本列表返回 "SubtitleString" 以串联字幕文本组成的单个字符串形式返回 "SubtitleStringRules" 以 {int1string1,int2string2,…} 形式的纯文本列表返回 "SubtitleEncoding" 文件中使用的字幕编解码器 - 附加元数据参数:
-
"ExactDurations" 所有视频、音频和字幕轨道的确切时长的关联 "ExactTimeBoundaries" 所有视频、音频和字幕轨道的确切开始和结束时间的关联 "Duration" 视频的大概时长,以秒为单位 "MetaInformation" 元数据解释为数量、位置、日期、数字等 "RawMetaInformation" 未解释的元数据为字符串和数字 "Summary" 文件摘要 "TrackStartTimes" 每个曲目的开始时间的关联 - $VideoDecoders 和 $AudioDecoders 给出计算机系统上可用的解码器列表.
Export 的参数
- Export["file.mkv",{elem1->expr1,…},"Rules"] 使用规则来指定要导出的元素.
- 可用的 Export 参数:
-
"Audio" 音轨 "Frames" 以列表、Manipulate 或 AnimatedImage 对象形式提供的视频帧
选项
- Import 的通用选项:
-
AudioTrackSelection 1 感兴趣的音轨 "ImageTopOrientation" Automatic 存储在文件中的视频方向 RasterSize Automatic 栅格尺寸 SubtitleTrackSelection 1 感兴趣的字幕轨道 VideoTrackSelection 1 感兴趣的视频轨道 - "Audio" 参数的 Import 选项:
-
"AudioChannels" Automatic 音频通道数 SampleRate Automatic 每个通道每秒采样 - Export 的通用选项:
-
AudioEncoding Automatic 文件的音频编码 Background Automatic 背景颜色 BitRate Automatic 使用的近似比特率 CompressionLevel Automatic 使用的压缩级别 FrameRate Automatic 每秒显示的帧数 IncludeMetaInformation All 是否导出元数据 MetaInformation Automatic 要导出的元数据 RasterSize Automatic 像素尺寸 SampleRate Automatic 每个通道每秒采样 SubtitleEncoding Automatic 文件的字幕编码 VideoEncoding Automatic 文件的视频编码 VideoTransparency False 是否导出透明通道 - "Video" 和 "VideoStream" 参数的 Export 选项:
-
AudioTrackSelection All 感兴趣的音轨 SubtitleTrackSelection All 感兴趣的字幕轨道 VideoTrackSelection All 感兴趣的视频轨道 - 导出 Manipulate 表达式时的 Export 选项:
-
"AnimationDuration" Automatic 动画总时长 "ControlAppearance" Automatic 如何在导出的文件中渲染 Manipulate 的控制参数 - 可以为 "ControlAppearance" 指定以下设置:
-
Automatic 使用本地计算机系统的样式参数来完全捕获笔记本界面中所见的用户控件 "Generic" 以通用样式呈现图形控件 None 导出动画时排除控制元素 - $VideoEncoders 和 $AudioEncoders 给出计算机系统上可用的编码器列表.
范例
打开所有单元关闭所有单元范围 (6)
Export (4)
导入的参数 (32)
视频参数 (3)
"Video" (1)
"VideoData" (1)
"VideoStream" (1)
轨道数量 (3)
元数据参数 (7)
视频轨道 (7)
"VideoEncoding" (1)
音频轨道 (6)
字幕轨道 (5)
"RawSubtitle" (1)
"SubtitleEncoding" (1)
"SubtitleRules" (1)
"SubtitleString" (1)
"SubtitleStringRules" (1)
导入的选项 (7)
AudioTrackSelection (1)
默认情况下,Import 仅从第一个音轨中提取数据:
用 AudioTracks 选项从指定的音轨中提取数据:
SubtitleTrackSelection (1)
默认情况下,Import 仅从第一个字幕轨道中提取数据:
使用 SubtitleTrackSelection 选项从指定的字幕轨道中提取数据:
VideoTrackSelection (1)
默认情况下,Import 仅从第一个视频轨道中提取数据:
使用 VideoTracks 选项从指定的视频轨道中提取数据:
导出的选项 (22)
"AnimationDuration" (1)
指定导出的 Manipulate 表达式的持续时间:
BitRate (4)
CompressionLevel (2)
"ControlAppearance" (1)
设置为 "ControlAppearance"Automatic 时,如果创建动画的计算机系统不同,导出的动画看起来也会有所不同:
用 "ControlAppearance"None,导出的视频中不包含任何用户控件:
FrameRate (1)
默认情况下,导出 Video 或 VideoStream 对象时会保留帧速率:
RasterSize (1)
默认情况下,导出 Video 或 VideoStream 对象时,将保留栅格大小:
SampleRate (1)
默认情况下,导出 Video、VideoStream 或 Audio 对象时将保留采样率: