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 處理的影片/音訊。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案