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'} ) |