TorchCodec使用说明(v2.1)

更新时间:
复制为 MD 格式

1. 简介

TorchCodec 是面向 PyTorch 生态的视频编解码与媒体处理工具,旨在为深度学习场景提供更高效的数据读取、解码和集成能力,便于将视频数据更顺畅地接入模型训练与推理流程。并支持CUDA硬件加速的视频编解码能力。

官方文档:Welcome to the TorchCodec documentation! — TorchCodec 0.4 Documentation

项目repo:https://github.com/pytorch/torchcodec

PPU版本的TorchCodec基于社区TorchCodec源码进行兼容性适配。最新已经支持到了TorchCodec 0.9.1,支持平头哥pypi源安装(推荐)和源码编译。

请注意目前releasePPU TorchCodec版本和Torch版本的依赖关系:

TorchCodec版本

Torch版本

Python版本

0.9.1

2.9

>=3.10, <=3.14

0.7.0

2.8

>=3.9, <=3.13

0.4.0

2.7

>=3.9, <=3.13

2. 安装指南

2.1 pypi源安装

PPU 平台维护了专属的 pypi 软件源。推荐使用平头哥 PPU pip 源安装TorchCodec。

# Torch 2.9
pip install torchcodec==0.9.1 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple --force-reinstall
# Torch 2.8
pip install torchcodec==0.7.0 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple --force-reinstall
# Torch 2.7
pip install torchcodec==0.4.0 -i https://art-pub.eng.t-head.cn/artifactory/api/pypi/pypi_index/simple --force-reinstall

2.2 源码编译安装

若有特殊需求需要从源码编译安装, 请按照以下步骤搭建依赖环境并源码编译:

  1. 安装PPU PyTorch,请参考“PyTorch v2.9.0 用户指南”安装PyTorch。

  2. 安装PPU FFmpeg,请参考“Video FFmpeg使用指南”安装FFmpeg。

  3. 源码编译安装:

# release_tag: from git repo, v0.7.0 for instance
git clone -b <release_tag> https://github.com/pytorch/torchcodec.git
cd torchcodec/
git apply torchcodec_<release_tag>.patch
ENABLE_CUDA=1 I_CONFIRM_THIS_IS_NOT_A_LICENSE_VIOLATION=1 pip install . --no-build-isolation

以下是各个版本的patch文件:

3. 使用指南

请参考社区官方的使用指南: https://meta-pytorch.org/torchcodec/stable/index.html
PPU上支持TorchCodec CUDA backend以及CUDA beta backend视频硬件解码加速。
使用示例:

python sample_torchcodec.py

sample_torchcodec.py 源码示例:

import torch

print(f"{torch.__version__=}")
print(f"{torch.cuda.is_available()=}")
print(f"{torch.cuda.get_device_properties(0)=}")

import torchcodec
from torchcodec.decoders import VideoDecoder

decoder = VideoDecoder("sample.mp4", device="cuda")
frame = decoder[0]

4. 已知问题

device='cuda'下不支持MPEG1,MPEG2,MPEG4,VC1,VP8legacy格式。