PyTorch перенесла медиаввод и вывод в TorchCodec
PyTorch Foundation описала новую структуру медиастека: TorchCodec отвечает за декодирование и кодирование, а TorchVision и TorchAudio — за преобразование данных. Одновременно часть прежних API объявлена устаревшей или удалена.

PyTorch Foundation описала, как за последние два года изменилась работа с медиаданными в экосистеме PyTorch. Декодирование и кодирование изображений, видео и аудио теперь сосредоточены в TorchCodec, который работает на CPU и CUDA. TorchVision и TorchAudio сфокусированы на преобразовании уже декодированных данных.
Такое разделение должно упростить выбор инструментов: TorchCodec превращает медиафайлы или закодированные байты в тензоры, а TorchVision и TorchAudio обрабатывают эти тензоры. Для обратного процесса предусмотрено кодирование результатов в медиафайлы. В материале приведены примеры VideoDecoder и AudioDecoder вместе с преобразованиями из соответствующих библиотек.
Изменение требует внимания при миграции: API декодирования и кодирования, ранее находившиеся в TorchVision и TorchAudio, объявлены устаревшими или удалены. При этом все три библиотеки теперь ABI-стабильны и не привязаны к одной версии PyTorch, поэтому их релизы больше не обязаны совпадать с релизами основной платформы.
Почему это важно
Разработчикам медиамоделей нужно учитывать новое разделение обязанностей библиотек и проверять совместимость прежних API. Для новых проектов схема становится понятнее: TorchCodec отвечает за ввод и вывод медиа, а TorchVision и TorchAudio — за преобразования.