write_video

函数功能

write_video函数用于将张量格式的视频数据写入文件。

函数接口

1
torchvision.io.write_video(filename, video_array, fps, video_codec='libx264', options=None, audio_array=None, audio_fps=None, audio_codec='aac', audio_options=None)

参数

参数名

描述

取值范围

输入/输出

filename

输出视频文件的路径。

字符串

输入

video_array

视频帧序列,形状为(T, C, H, W),其中T表示帧数,C表示通道数(通常是3,表示RGB),H和W分别表示高度和宽度。

torch.Tensor

输入

fps

视频的帧率(每秒帧数)。

(0, INT_MAX]

输入

video_codec

视频编码器,默认为libx264。支持多种编码器,如libx264、libx265、mpeg4等。

字符串

输入

options

视频编码器的额外选项,以字典形式提供。例如,{'crf': '23'}用于设置恒定质量因子。

字典

输入

audio_array

音频数据,形状为(T, N),其中T表示音频帧数,N表示声道数。

torch.Tensor

  

audio_fps

音频的采样率(每秒采样数)。

(0, INT_MAX]

  

audio_codec

音频编码器,默认为aac。支持多种编码器,如aac、mp3等。

字符串

  

audio_options

音频编码器的额外选项,以字典形式提供。例如,{'b:a': '128k'}用于设置音频比特率。

字典

  

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import torch
import torchvision.io as io

# 生成一个简单的视频帧序列
video_array = torch.rand((100, 3, 1080, 1920))  # 100帧,1080p分辨率,RGB格式

# 生成一个简单的音频数据
audio_array = torch.rand((100000, 2))  # 100000个采样点,双声道

# 定义输出文件路径
filename = 'output_video.mp4'

# 写入视频文件
io.write_video(
    filename=filename,
    video_array=video_array,
    fps=30,
    video_codec='libx264',
    options={'crf': '23'},
    audio_array=audio_array,
    audio_fps=44100,
    audio_codec='aac',
    audio_options={'b:a': '128k'}
)