You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

torchaudio.io未正确调用FFmpeg致h264_cuvid解码失败求助

解决Torchaudio中"Unsupported codec: h264_cuvid"错误

问题背景

运行Torchaudio硬件加速GPU解码代码时触发RuntimeError: Unsupported codec: "h264_cuvid",但系统命令行下FFmpeg可正常调用h264_cuvid解码器完成视频解码。环境信息:

  • GPU: RTX 3090 Ti
  • 系统: Ubuntu 22.04
  • Torch版本: 1.14.0.dev20221013+cu116
  • Torchaudio版本: 0.13.0.dev20221013+cu116

解决方案

1. 排查Torchaudio绑定的FFmpeg能力

Torchaudio自带的FFmpeg可能未编译NVIDIA硬件加速支持,先确认其可用解码器列表:

import torchaudio
print(torchaudio.utils.ffmpeg_utils.get_ffmpeg_version())
print(torchaudio.utils.ffmpeg_utils.get_available_decoders())

若输出中无h264_cuvid,说明Torchaudio的FFmpeg缺失该组件。

2. 重新编译Torchaudio链接系统FFmpeg

利用已支持硬件加速的系统FFmpeg重新编译Torchaudio:

  1. 安装编译依赖:
sudo apt-get install build-essential cmake libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
  1. 克隆对应版本的Torchaudio源码:
git clone https://github.com/pytorch/audio.git
cd audio
git checkout tags/v0.13.0.dev20221013
  1. 指定使用系统FFmpeg并编译安装:
export USE_SYSTEM_FFMPEG=1
python setup.py install

3. 简化StreamReader配置

尝试省略手动指定解码器,让Torchaudio自动匹配CUDA解码器:

cuda_conf = {
    "hw_accel": "cuda:0",
}

Torchaudio会根据硬件和视频编码自动选择合适的硬件解码器,避免手动指定的兼容性问题。

4. 验证CUDA环境兼容性

确保NVIDIA驱动版本与Torch的CUDA版本(cu116)匹配:

nvidia-smi
nvcc --version

若驱动版本低于CUDA 11.6要求,升级NVIDIA驱动至对应版本。

内容的提问来源于stack exchange,提问作者IntegrateThis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:20:42