AVI (.avi)

背景

    • 注册的 MIME 类型:video/avi
    • 微软 AVI 格式.
    • 多媒体容器格式.
    • 可包含多个视频和音频轨道.
    • 常用于存档和交换音频内容.
    • 以适合同步播放的格式存储音频和视频内容.
    • AVI 是 Audio Video Interleave(音视频交替)的缩写.
    • 二进制格式.
    • 支持各种音视频编解码器.
    • 由微软于 1992 年引入.

Import 与 Export

  • Import["file.avi"] 导入 AVI 文件并返回一个 Video 对象.
  • Import["file.avi",elem] 导入指定参数.
  • 可使用 Import["file","AVI"]Import["file",{"AVI",elem,}] 指定导入的格式.
  • Export["file.avi",expr] exports expr to the AVI format.
  • 以下表达式可以导出到 AVI:
  • video任意 Video 对象
    AnimatedImage[]AnimatedImage 对象的帧
    Manipulate[]Manipulate 表达式生成的帧
    {expr1,expr2,}图像、图形或光栅化表达式的列表
  • 导出任意表达式列表时,每个表达式都被光栅化,并具有与其显示形式相同的光栅大小.
  • AVI 视频的持续时间取决于帧数和指定的帧频.
  • 导出的 AVI 视频将以与 Manipulate 对象相同的速度播放,并具有相同的大小.
  • 如果在 Manipulate 对象中设置了书签,则 Export 将通过在书签之间进行插值来创建 AVI 文件,同时保留 Manipulate 的速度和持续时间.
  • Export["file.avi",{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 对象处理
  • Import 默认情况下,AVI 格式使用 "Video" 参数.
  • 一个视频文件可能包含多个视频、音频或字幕轨道。返回轨道数的元素:
  • "AudioTrackCount"音轨数
    "VideoTrackCount"视频轨道数
  • 视频元数据参数:
  • "BitDepth"用于表示文件中每个颜色通道的位数
    "ColorSpace"文件中使用的颜色编码
    "FrameCount"文件中的帧数
    "FrameDurations"每帧显示时间的列表
    "FrameRate"每秒显示的帧数
    "RasterSize"栅格尺寸
    "VideoEncoding"文件中使用的视频编解码器
  • 音频相关参数:
  • "Audio"核内 Audio 对象
    "AudioChannels"音频通道数
    "AudioData"音频样本数组
    "AudioEncoding"文件中使用的音频编解码器
    "BitRate"每秒位数
    "SampleRate"每秒音频样本数
  • 附加元数据参数:
  • "Duration"视频的大概时长,以秒为单位
    "ExactDurations"所有视频、音频和字幕轨道的确切时长的关联
    "ExactTimeBoundaries"所有视频、音频和字幕轨道的准确开始和结束时间的关联
    "MetaInformation"元数据解释为数量、位置、日期、数字等
    "RawMetaInformation"未解释的元数据为字符串和数字
    "Summary"文件摘要
    "TrackStartTimes"每个曲目的开始时间的关联
  • $VideoDecoders$AudioDecoders 给出计算机系统上可用的解码器列表.

Export 参数

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

选项

范例

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

基本范例  (3)

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

导入视频属性,例如时长:

导入视频文件摘要:

Video 导出到 AVI:

范围  (6)

导入视频帧列表:

导入音频数据的前10秒:

Export  (4)

将图像列表导出到 AVI:

从视频获取三帧:

Manipulate 导出到 AVI:

导出文件的摘要:

导出一个 AnimatedImage 对象:

导出一个有音频的 Manipulate

导出文件摘要:

导入参数  (27)

生成多轨 AVI 文件  (1)

生成多轨 AVI 文件:

可用参数  (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 提取每个平台上受支持的解码器:

音频轨道  (6)

"Audio"  (1)

从 AVI 文件导入 Audio

"AudioChannels"  (1)

导入音频通道数:

"AudioData"  (1)

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

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

"AudioEncoding"  (1)

导入音频编码:

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

"BitRate"  (1)

获取音轨的比特率:

"SampleRate"  (1)

获取音轨的采样率:

导入选项  (7)

生成多轨 AVI 文件  (1)

生成多轨 AVI 文件:

"AudioChannels"  (1)

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

仅导入第二个通道:

AudioTrackSelection  (1)

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

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

"ImageTopOrientation"  (1)

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

指定应该在顶部的一面:

RasterSize  (1)

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

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

SampleRate  (1)

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

指定导入声音的采样率:

VideoTrackSelection  (1)

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

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

导出选项  (19)

"AnimationDuration"  (1)

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

AudioEncoding  (1)

指定导出音频的编码:

AudioTracks  (1)

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

指定要导出的音轨:

不导出音轨:

Background  (1)

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

指定其他填充:

BitRate  (4)

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

查看总体近似比特率:

推荐一个近似比特率:

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

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

检查总体近似比特率:

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

CompressionLevel  (2)

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

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

"ControlAppearance"  (1)

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

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

FrameRate  (1)

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

指定不同的帧速率:

IncludeMetaInformation (1)

导入元数据:

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

MetaInformation (1)

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

对比源文件中的元数据:

导出指定元数据,仅选择支持 "AVI" 的标签:

RasterSize  (1)

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

指定不同的栅格大小:

SampleRate  (1)

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

指定不同的采样率:

VideoEncoding  (1)

指定导出视频的编码:

VideoTrackSelection  (1)

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

指定要导出的视频轨道:

不导出视频轨道:

VideoTransparency  (1)

创建有 alpha 通道的视频:

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

导出带 alpha 通道的视频: