Быстрое и практичное AV1-кодирование видео с помощью ffmpeg

Эта команда позволяет кодировать видео в AV1 с почти реальным временем на обычных компьютерах.

На более современном сервере AMD это работает с AMD Ryzen 5 3600 со скоростью до 0.4x (~10..15 кодируемых кадров в секунду) для телефонного видео и до ~2.5x для вебинароподобного видео. Однако некоторые фильмы, такие как дрожащее телефонное видео, будут работать только со скоростью 0.05x = 0.8 кодируемых кадров в секунду. Это действительно зависит от многих факторов и также сильно меняется во время кодирования. Вам нужно закодировать всё видео, чтобы оценить как скорость, так и результирующий размер файла. На старых компьютерах или для определённых видеоклипов это всё ещё может быть ужасно медленным (до ~0.3 кодируемых кадров в секунду). Рассмотрите использование H.265 в качестве альтернативы, но имейте в виду, что он гораздо менее эффективен по месту.

encode_av1.sh
ffmpeg -i input.mp4 -crf 35 -c:v libaom-av1 -usage realtime -tune 0 -c:a libopus -b:a 64k av1.mkv

Самый важный флаг здесь — -usage realtime, который настраивает кодировщик на использование быстрого (вместо медленного и более эффективного) кодирования.

-c:a libopus -b:a 64k здесь необязателен, но если вы инвестируете вычислительное время в перекодирование видео, вы можете также перекодировать аудио для использования надлежащего кодека.

-tune 0 настраивает кодировщик на оптимизацию визуального качества.

Смотрите страницу информации ffmpeg по AV1 для дополнительной информации. Обратите внимание, что по крайней мере на Ubuntu 22.04 в стандартную версию ffmpeg включён только кодировщик libaom-av1.


Check out similar posts by category: Видео