Ogg (.ogg, .oga, ...)

背景

    • 注册的 MIME 类型:video/ogg
    • 多媒体容器格式.
    • 可包含多个视频、音频和字幕轨道.
    • 为有效播放使用设计.
    • 支持各种视频音频编解码器.
    • 由 Xiph.Org Foundation 开发和维护.

Import 与 Export

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

Import 参数

  • 通用 Import 参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 视频表示参数:
  • "ImageList"表示为图像列表的帧
    "Video"表示为 Video 对象的视频文件
    "VideoData"每帧的原始位图数据数组
    "VideoStream"视频文件作为 VideoStream 对象处理
  • 音频表示参数:
  • "Audio"核内 Audio 对象
    "AudioData"音频样本数组
    "AudioFile"核外 Audio 对象
  • 如果文件具有视频轨道,则默认情况下 Import 使用 "Video" 参数,否则使用 "Audio" 参数.
  • 一个视频文件可能包含多个视频、音频或字幕轨道。返回轨道数的元素:
  • "AudioTrackCount"音轨数
    "VideoTrackCount"视频轨道数
  • 视频元数据参数:
  • "BitDepth"用于表示文件中每个颜色通道的位数
    "ColorSpace"文件中使用的颜色编码
    "FrameCount"文件中的帧数
    "FrameDurations"每帧显示时间的列表
    "FrameRate"每秒显示的帧数
    "RasterSize"栅格尺寸
    "VideoEncoding"文件中使用的视频编解码器
  • 音频元数据参数:
  • "AudioChannels"音频通道数
    "AudioBitDepth"用于表示每个音频样本的位数
    "AudioEncoding"文件中使用的音频编解码器
    "AudioLength"音频样本数
    "BitRate"每秒位数
    "SampleRate"每秒音频样本数
  • 附加元数据参数:
  • "ExactDurations"所有视频、音频和字幕轨道的确切时长的关联
    "ExactTimeBoundaries"所有视频、音频和字幕轨道的确切开始和结束时间的关联
    "Duration"视频的大概时长,以秒为单位
    "MetaInformation"元数据解释为数量、位置、日期、数字等
    "RawMetaInformation"未解释的元数据为字符串和数字
    "Summary"文件摘要
    "TrackStartTimes"每个曲目的开始时间的关联
  • $VideoDecoders$AudioDecoders 给出计算机系统上可用的解码器列表.

Export 参数

  • Export["file.ogg",{elem1->expr1,},"Rules"] 使用规则来指定要导出的元素.
  • 可用 Export 参数:
  • "Audio"音轨
    "Frames"以列表、ManipulateAnimatedImage 对象形式提供的视频帧

选项

范例

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

基本范例  (4)

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

将一个音频 Ogg 文件导入为 Audio 对象:

导入视频文件摘要:

Video 对象导出到 Ogg:

范围  (6)

Import  (2)

导入视频帧列表:

导入音频数据的前 10 秒:

Export  (4)

导出图像列表到 Ogg:

从视频中获取三帧:

导入一个 Manipulate 到 Ogg:

导出文件的摘要:

导出一个 AnimatedImage 对象:

导出一个有音频的 Manipulate

导出文件的摘要:

导入参数  (28)

生成多轨 Ogg 文件  (1)

生成多轨 Ogg 文件:

可用参数  (1)

可用参数列表:

视频参数  (3)

"Video"  (1)

导入为 Video对象:

这是默认的导入元素:

"VideoData"  (1)

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

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

"VideoStream"  (1)

导入为 VideoStream 对象:

播放视频流:

从流中获取当前帧:

轨道数量  (2)

"AudioTrackCount"  (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)

从 Ogg 文件导入 Audio

"AudioChannels"  (1)

导入音频通道数:

"AudioData"  (1)

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

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

"AudioEncoding"  (1)

导入音频编码:

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

"AudioFile"  (1)

导入核外 Audio 对象:

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

"BitRate"  (1)

获取音轨的位速率:

"SampleRate"  (1)

获取音轨的采样率

导入选项  (10)

生成多轨 Ogg 文件:  (1)

生成多轨 Ogg 文件:

"AudioChannels"  (1)

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

仅导入第二个通道:

AudioTrackSelection  (1)

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

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

"ImageTopOrientation"  (1)

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

指定应向上的边:

IncludeMetaInformation  (3)

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

避免导入任何元数据:

仅导入指定的元数据类

RasterSize  (1)

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

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

SampleRate  (1)

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

指定导入声音的采样率:

VideoTrackSelection  (1)

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

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

导出选项  (19)

"AnimationDuration"  (1)

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

AudioEncoding  (1)

指定导出音频的编码:

AudioTrackSelection  (1)

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

指定要导出的音轨:

不导出音轨:

Background  (1)

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

指定其他填充:

BitRate  (4)

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

查看总体近似比特率:

推荐一个近似比特率:

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

分别指定大概的视频和音频比特率:

检查总体近似比特率:

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

CompressionLevel  (2)

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

如果同时为视频和音频指定了 BitRate 则忽略 CompressionLevel 值:

"ControlAppearance"  (1)

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

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

FrameRate  (1)

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

指定不同的帧速率:

IncludeMetaInformation (2)

默认情况下,从 Audio 对象导出所有存在的元信息:

指定包括的元数据:

导入元数据:

不导出类似 "Language" 或 "Title" 等的元数据:

MetaInformation (1)

导入元数据:

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

对于 "Ogg" 仅支持所选择的元数据标签. 导出指定元数据:

RasterSize  (1)

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

指定不同的栅格大小:

SampleRate  (1)

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

指定不同的采样率:

VideoEncoding  (1)

指定导出视频的编码:

VideoTrackSelection  (1)

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

指定要导出的视频轨道:

不导出视频轨道: