torchvision write_video处理数据集视频时抛出IndexError问题求助
解决torchvision write_video的IndexError问题
问题根源
你调用write_video时传了音频相关参数,但代码在创建视频容器后找不到音频流,导致访问container.streams.audio[0]时触发索引越界。大概率是以下两种情况:
- 原视频根本没有音频,但你硬传了
audio_array、audio_fps这些参数 - 你传入的
clip_audio是空数组或者格式不对,导致无法创建有效音频流
解决办法
- 不传音频参数:如果处理的视频本身没有音频,直接去掉所有音频相关参数,只保留视频参数调用:
write_video(filename=str(output_path), video_array=clip_video, fps=video_fps) - 显式禁用音频:如果不小心带了音频参数,直接把
audio_array设为None,函数会自动跳过音频写入:write_video(filename=str(output_path), video_array=clip_video, fps=video_fps, audio_array=None) - 修复音频数据:如果确实需要写入音频,检查
clip_audio的形状是否是(通道数, 采样点数)的张量,audio_fps是否和音频采样率匹配,同时确认audio_codec(比如aac)和输出视频格式兼容。
内容的提问来源于stack exchange,提问作者tealy
相关产品推荐
相关产品推荐

