QuickTime (.mov, .qt)

背景

    • 注册的 MIME 类型:video/quicktime
    • 苹果(Apple) QuickTime 文件格式.
    • 多媒体容器格式.
    • 可包含多个视频、音频和字幕轨道.
    • 常用于归档和交换视频内容.
    • 以适合于同步播放的格式存储音频和视频.
    • 二进制格式.
    • 支持各种视频音频编解码器.
    • 1991 年由苹果引入.

Import 与 Export

  • Import["file.mov"] 导入 QuickTime 文件并返回一个 Video 对象.
  • Import["file.mov",elem] 导入指定参数.
  • 导入格式可以用 Import["file","QuickTime"]Import["file",{"QuickTime",elem,}] 指定.
  • 当使用某第三方 QuickTime 附加程序时,"QuickTime"格式必须明确指定.
  • Export["file.mov",expr1,expr2,}]expr 导入到 QuickTime 格式.
  • 以下表达式可以导出到 QuickTime:
  • video任意 Video 对象
    AnimatedImage[]AnimatedImage 对象的帧
    Manipulate[]Manipulate 表达式生成的帧
    {expr1,expr2,}图像、图形或光栅化表达式的列表
  • 导出任意表达式列表时,每个表达式都被光栅化,并具有与其显示形式相同的光栅大小.
  • QuickTime 视频的长度由帧数和指定的帧率决定.
  • 如果在 Manipulate 对象中设置书签,Export 将通过在书签中插值创建一个 QuickTime 文件,其将保持 Manipulate 的速度和长度.
  • Export["file.mov",{elem1->expr1,elem2->expr2,},"Rules"] 使用规则指定要导出的参数.
  • $VideoEncoders 中列出了所支持的视频编码.
  • 请到以下参考页面了解完整的基本信息:
  • Import, Export从文件导入或导出到文件
    CloudImport, CloudExport从云对象导入或导出到云对象
    ImportString, ExportString从字符串导入或导出到字符串
    ImportByteArray, ExportByteArray从字节数组导入或导出到字节数组

Import 的参数

  • 通用 Import 参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 视频表示参数:
  • "ImageList"表示为图像列表的帧
    "Video"表示为 Video 对象的视频文件
    "VideoData"每帧的原始位图数据数组
    "VideoStream"视频文件作为 VideoStream 对象处理
  • 对于 QuickTime 格式,Import 默认使用 "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"文件中使用的字幕编解码器
  • 附加元数据参数:
  • "Duration"视频的大概时长,以秒为单位
    "ExactDurations"所有视频、音频和字幕轨道的确切时长的关联
    "ExactTimeBoundaries"所有视频、音频和字幕轨道的确切开始和关闭的关联
    "MetaInformation"元数据解释为数量、位置、日期、数字等
    "RawMetaInformation"未解释的元数据为字符串和数字
    "Summary"文件摘要
    "TrackStartTimes"每个曲目的开始时间的关联
  • $VideoDecoders$AudioDecoders 给出计算机系统上可用的解码器列表.

Export 参数

  • Export["file.mov",{elem1->expr1,},"Rules"] 通过规则指定导出的参数.
  • 可用 Export 参数:
  • "Audio"音频文件
    "Frames"作为列表、ManipulateAnimatedImage 对象提供的视频帧

选项

范例

打开所有单元关闭所有单元

基本范例  (3)

将一个 QuickTime 文件导入为 Video 对象:

导入视频文件摘要:

Video 对象导出到 QuickTime:

范围  (7)

导入  (2)

导入视频帧的列表:

导入元信息参数:

导出  (5)

将图像列表导出到 QuickTime:

从视频获取三张帧:

Manipulate 导出为 QuickTime:

从视频中获取部分帧:

导出一个 AnimatedImage 对象:

导出视频的 Manipulate

导出文件的摘要:

当导出 Graphics,帧被光栅化为首帧的大小:

导入的参数  (34)

生成多轨 QuickTime 文件  (1)

生成多轨 QuickTime 文件:

可用参数  (1)

可用参数列表:

视频参数  (3)

"Video"  (1)

导入为 Video对象:

这是默认的导入元素:

"VideoData"  (1)

导入与指定帧对应的视频数据:

将存储在 NumericArray 对象中的视频数据转换为图像:

"VideoStream"  (1)

导入为 VideoStream 对象:

播放视频流:

从流中获取当前帧:

轨道数量  (3)

"AudioTrackCount"  (1)

导入音轨数量:

"SubtitleTrackCount"  (1)

导入字幕轨道的数量:

"VideoTrackCount"  (1)

导入视频轨道的数量:

元数据参数  (7)

"Duration"  (2)

导入视频的大致时长:

要导入确切的轨道持续时间,请使用 "ExactDurations" 参数:

"ExactDurations"  (2)

导入准确的轨道持续时间:

导入视频的大致时长:

计算近似持续时间通常比精确持续时间快很多:

"MetaInformation"  (1)

从视频文件导入元数据:

"RawMetaInformation"  (1)

从视频文件导入未处理的元数据:

"Summary"  (1)

导入视频文件摘要:

视频轨  (7)

"BitDepth"  (1)

导入位数深度:

"ColorSpace"  (1)

导入色彩空间:

"FrameCount"  (1)

导入视频帧数:

"FrameDurations"  (1)

导入所选视频帧的时长:

"FrameRate"  (1)

导入视频帧率:

"RasterSize"  (1)

导入视频帧的栅格大小:

"VideoEncoding"  (1)

导入视频编解码器:

可以使用 $VideoDecoders 提取每个平台上受支持的解码器:

音轨  (7)

"Audio"  (1)

从 QuickTime 文件导入 Audio

"AudioChannels"  (1)

导入音频通道数:

"AudioData"  (1)

从 QuickTime 文件将音频数据导入为 NumericArray

将存储的音频数据转换为 Audio 对象:

"AudioEncoding"  (1)

导入音频编码:

可以从 $AudioDecoders 中提取可用的音频解码器:

"AudioFile"  (1)

导入核外 Audio 对象:

请注意,核外 Audio 不会在内存中保存数据. 与核内 Audio 进行比较:

"BitRate"  (1)

获取音轨的比特率:

"SampleRate"  (1)

获取音轨的采样率:

字幕轨  (5)

"RawSubtitle"  (1)

从 QuickTime 文件获取原始字幕:

如果字幕不存在,则返回 None

"SubtitleEncoding"  (1)

导入字幕编码:

可通过 $SubtitleDecoders 提取可用的字幕编码:

"SubtitleRules"  (1)

以样式化文本列表的形式获取字幕:

如果字幕不存在,则返回 None

"SubtitleString"  (1)

以单个字符串的形式获取字幕:

如果字幕不存在,则返回 None

"SubtitleStringRules"  (1)

以纯文本列表的形式获取字幕:

如果字幕不存在,则返回 None

导入的选项  (11)

生成多轨 QuickTime 文件  (1)

生成多轨 QuickTime 文件:

"AudioChannels"  (1)

默认情况下,所有音频通道均已导入:

仅导入第二个通道:

AudioTrackSelection  (1)

默认情况下,Import 仅从第一个音轨中提取数据:

使用 AudioTracks 选项从指定的音轨中提取数据:

"ImageTopOrientation"  (1)

默认情况下,导入视频帧时将其原始方向存储在文件中:

指定应该在顶部的一面:

IncludeMetaInformation  (3)

生成带有音频元数据的 QuickTime 文件:

默认情况下,导入所有可用的元数据:

避免导入任何元数据:

仅导入指定类别的元数据:

RasterSize  (1)

默认情况下,视频帧以其原始大小导入:

指定每个视频帧的栅格大小:

SampleRate  (1)

默认情况下,视频帧以其原始大小导入:

指定导入声音的采样率:

SubtitleTrackSelection  (1)

默认情况下,Import 仅从第一个字幕轨道中提取数据:

使用 SubtitleTracks 选项从指定的字幕轨道中提取数据:

VideoTrackSelection  (1)

默认情况下,Import 仅从第一个视频轨道中提取数据:

使用 VideoTracks 选项从指定的视频轨道中提取数据:

导出的选项  (23)

"AnimationDuration"  (1)

指定导出的 Manipulate 表达式的持续时间:

AudioEncoding  (1)

指定导出音频的编码:

AudioTrackSelection  (1)

默认情况下,所有音轨都将导出:

指定要导出的音轨:

不导出音轨:

Background  (1)

默认情况下,白色背景用于透明图形和图像,以及在导出之前填充不同尺寸的图像时:

指定其他填充:

BitRate  (4)

默认情况下,导出到视频文件时使用自动比特率:

总体近似比特率:

建议一个大概的比特率:

检查可能与建议略有不同的近似比特率:

分别指定近似的视频和音频比特率:

检查总体近似比特率:

较小的比特率导致较小的文件,但也会降低生成的视频的质量:

CompresionLevel  (2)

使用 CompressionLevel 选项控制文件大小和生成的视频的质量:

当指定了视频和音频的 BitRate 时,将忽略 CompressionLevel 的值:

"ControlAppearance"  (1)

设置为 "ControlAppearance"Automatic 时,如果创建动画的计算机系统不同,导出的动画看起来也会有所不同:

"ControlAppearance"None,导出的视频中不包含任何用户控件:

FrameRate  (1)

默认情况下,导出 VideoVideoStream 对象时会保留帧速率:

指定不同的帧速率:

IncludeMetaInformation (3)

默认情况下,所有来自 Audio 对象的现有元信息都会被导出:

指定要包括的元数据:

导入元数据:

不导出元数据,例如 "Language""Title"

MetaInformation (1)

默认情况下,导入视频文件的所有支持的元数据被导出:

与元文件的数据元数据进行对比:

导出指定的元数据;"QuickTime" 仅支持选定的标签:

RasterSize  (1)

默认情况下,导出 VideoVideoStream 对象时,将保留栅格大小:

指定不同的栅格大小:

SampleRate  (1)

默认情况下,导出 VideoVideoStreamAudio 对象时将保留采样率:

指定不同的采样率:

SubtitleEncoding  (1)

指定导出字幕的编码:

SubtitleTrackSelection  (1)

默认情况下,所有字幕轨道均已导出:

指定要导出的字幕轨道:

不导出字幕轨道:

VideoEncoding  (1)

指定导出视频的编码:

VideoTrackSelection  (1)

默认情况下,所有视频轨道均已导出:

指定要导出的视频轨道:

不导出视频轨道:

VideoTransparency  (1)

创建一个有 alpha 通道的视频:

默认情况下,Export 移除透明度:

导出一个带 alpha 通道的视频: