meta-pytorch/torchcodec

Media decoding and encoding for PyTorch: videos, images, and audio, on CPU and GPU.

解决的问题

TorchCodec 提供了一种将媒体文件(视频、音频和图像)直接解码并编码为 PyTorch 张量的 PyTorch 原生方式。它消除了手动使用 FFmpeg 的复杂性,并确保媒体数据无需繁琐的转换步骤即可为机器学习模型做好准备。

工作原理

该库抽象了视频和音频处理中 FFmpeg 的复杂性,同时为图像提供了专用解码器。它提供反映 PyTorch 惯例的 Pythonic API,允许用户在 CPU 或 CUDA GPU 上将媒体加载为张量。它支持视频流的基于时间的索引和元数据提取。

适用对象

需要在基于 PyTorch 的工作流中高效加载和处理媒体数据进行训练或推理的 ML 工程师和研究人员。

亮点

  • PyTorch 集成:以张量形式返回数据,使其与 PyTorch transforms 和模型训练兼容。
  • 硬件加速:支持在 CPU 和 CUDA GPU(包括 NVDEC/NVENC)上进行解码和编码。
  • 灵活的索引:为视频帧提供简单的索引、基于时间的索引和 PTS (Presentation Time Stamp) 获取。
  • 广泛的格式支持:处理各种图像格式(JPEG, PNG, WebP, GIF, AVIF, HEIC)以及通过 FFmpeg 处理的视频/音频。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目