Ссылка на ролик Rutube - https://rutube.ru/video/17e7cd91719cb3db501f58ae24f1ba1e/
Как и обещал в этой статье покажу тесты аппаратных кодировщиков. В интернете достаточно часто встречаются сравнения кодеков. Данные сопоставления, как правило не совсем коректны. Имеется ввиду кодирование с помощью программ типа HandBrake и прочих. Так как любой кодек дает разное качество по кадрам одного и того же видео. Это связано со многими факторами. Во-первых, в кодеке работает такой механизм как управление битрейтом, которое дает колебания качества даже у хороших кодеков. Во-вторых, сам пользователь выбирает разные стратегии битрейта, и в случае выбора CBR (или постоянный битрейт) на медленных сценах качество будет высоким, а на быстрых - низким. В-третьих, у кодеков есть так называемые ключевые кадры, качество которых обычно изменяется отдельно, и отличается от качества остальных кадров. Это означает, что на любом достаточно длинном ролике (а средние видео это 150000-200000 кадров) можно подобрать как достаточно хорошие, так и достаточно плохие кадры. Особенно если использовалось однопроходное CBR сжатие на достаточно динамичном видео.
Я обратился на форум техподдержки OBS Studio и мне подсказали как правильно использовать аппаратный кодировщик. А именно нужно зайти в Настройки, во вкладку Вывод, выбрать Режим вывода Расширенный, и во вкладке Запись, в графе Кодировщик видео, выбрать интересующий вас. К примеру вы выбрали NVIDIA NVENC H.264, далее необходимо опуститься до вкладки Настройки кодировщика, в графе Управление битрейтом выбрать «Без потерь» для наиболее чесного сравнения. Профиль же можно оставить High или же изменить на Main. Такие же настройки применяем и к кодировщикам H.265 HEVCи AV1 соответственно.
Тесты апаратных кодировщиков
Начнем, сравнивать кодеки я буду на примере benchmark трёх разных игр а именно Cyberpunk 2077, Tom Clancy's Ghost Recon Wildlands и Watch Dogs Legion. Каких то визуальных отличий в качестве картинки я не наблюдаю, но вот по битрейту и размеру видео отличия есть. К примеру в Cyberpunk 2077 при длительности ролика 1:08 секунд размер или же вес видео у кодека сжатым с помощью H.264 составил 2,36 гигабайт. Размер видео у кодека сжатым с помощью H.265 составил 2,04 гигабайта, что на 14% эффективней. Размер видео у кодека сжатым с помощью AV1 составил 1,65 гигабайт, что на 30% эффективней чем H.264 и на 19% эффективней HEVC.
Что же касается битрейта то у H.264 битрейт видео составил чуть больше 298 тысяч кбит в секунду. А у H.265 битрейт составил почти 255 тысяч кбит в секунду, что на 14% меньше чем у H.264, при таком же качестве картинки. В свою очередь у AV1 битрейт составил 209 тысяч кбит в секунду, что на 30% меньше чем у H.264, при таком же или чуть лучшем качестве картинки.
В следующей игре Tom Clancy's Ghost Recon Wildlandsразница не столь велика. При длительности ролика 00:54 секунды размер или же вес видео у кодека сжатым с помощью H.264 составил 3,18 гигабайт. Размер видео у кодека сжатым с помощью H.265 составил 2,93 гигабайта, что на 8% эффективней. Размер видео укодека сжатым с помощью AV1 составил 2,67 гигабайт, что на 16% эффективней чем H.264 и на 9% эффективней HEVC.
Что же касается битрейта то у H.264 битрейт видео составил чуть больше 497 тысяч кбит в секунду. А у H.265 битрейт составил 458 тысяч кбит в секунду, что на 8% меньше чем у H.264, при таком же качестве картинки. В свою очередь у AV1 битрейт составил почти 418 тысяч кбит в секунду, что на 16% меньше чем у H.264, при таком же или чуть лучшем качестве картинки.
И завершает тесты последняя игра с минимальной разницей Watch Dogs Legion. При длительности ролика 1:32 секунды размер или же вес видео у кодека сжатым с помощью H.264 составил 3,76 гигабайт. Размер видео укодека сжатым с помощью H.265 составил 3,58 гигабайт, что на 5% эффективней. Размер видео у кодека сжатым с помощью AV1 составил 3,42 гигабайт, что на 9% эффективней чем H.264 и на 4% эффективней HEVC.
Что же касается битрейта то у H.264 битрейт видео составил чуть больше 347 тысяч кбит в секунду. А у H.265 битрейт составил почти 331 тысячу кбит в секунду, что на 5% меньше чем у H.264, при таком же качестве картинки. В свою очередь у AV1 битрейт составил 316 тысяч кбит в секунду, что на 9% меньше чем у H.264, при таком же или чуть лучшем качестве картинки.
Нагрузка на систему компьютера
Теперь проверим нагрузку на систему компьютера путём использования программы OBS Studio. Ранее я уже говорил, что аппаратные кодировщики снижают нагрузку на центральный процессор компьютера. Они заставляют обрабатывать информацию установленному в видеокарте чипу, который предназначен только для кодирования. Однако важно понимать, что аппаратные кодеры не полностью разгружают процессор, а только берут на себя определённые действия.
Чтобы проверить нагрузку аппаратного кодировщика, например NVIDIA NVENC, Intel Quick Sync или AMD HW, нужно:
- Открыть «Диспетчер задач».
- Перейти в раздел «Производительность», затем — «Графический процессор».
- Найти пункт «Video Encode», который отображает нагрузку на кодировщик во время стрима или записи видео через видеокарту.
Чтобы нагрузить как следует систему я запустил параллельно benchmark игры в отдельном окошке. С началом записи в OBS с использованием кодека H.264, мы можем видеть, что нагрузка на графический процессор не превышает 23% и задействует использование процессора не больше 3%, а так же программа использует около 500 мегабайт оперативной памяти. Используя кодек H.265,мы можем видеть, что нагрузка на графический процессор возросла вдвое и доходит до 44% и задействует использование процессора также не более 3%, а так же программа использует чуть меньше оперативной памяти около 350 мегабайт. Если нагрузка во время проведения трансляции или записи в Video Encode достигает более 95%, то энкодер видеокарты не справляется, что является причиной пропуска кадров.
Это были аппаратные кодировщики, а так как у меня нет возможности протестировать аппаратный AV1, то я использую программный. Используя кодек AV1, мы можем видеть, что нагрузка на графический процессор отсутствует, так как кодек для сжатия использует ресурсы центрального процессора. Видеокодер в свою очередь задействует CPU до 43%, а так же программа использует чуть меньше оперативной памяти около 280 мегабайт.
Если для стрима или записи используется кодировщик x264, то отслеживать необходимо нагрузку на CPU, так как x264 для кодирования использует ресурсы центрального процессора. Тесты проводились на Ryzen 5 3600 с таким процессором достижима предустановка потребления ЦП - Medium, так как на Slow пропуск кадров достигает 90%, и картинка страшно лагает. Используя кодек x264, мы можем видеть, что нагрузка на CPU доходит до 57%, а так же программа использует больше оперативной памяти около 890 мегабайт.
Как сжать видео с минимальными потерями качества
За всё время которое я потратил на созданиеи публикацию контента на онлайн-площадке у меня скопилось более 50 роликов, общим весом больше 180 гигабайт, что довольно много. Есть два способа решения этой проблемы, купить новый жесткий диск большим размером или же использовать транскодирование — это процесс взятия закодированного видеофайла, его декодирования, внесения в него каких-либо изменений, а затем повторного кодирования. Поскольку кодирование данных определяет тип сжатия, а также битрейт и разрешение видео, это то, что вы можете изменить во время перекодирования. Есть несколько бесплатных программ делающих описанные ранее процессы это HandBrake - https://handbrake.fr/, Shutter Encoder - https://www.shutterencoder.com/ и Nmkoder - https://github.com/n00mkrad/nmkoder/releases?ysclid=m1dzcw3ws427101305. Транскодирование изменяет содержимое файла. Но если вам нужно изменить контейнер, то эти программы также справятся с конвертацией.
Перекодируйте AV1, H.265 и H.264 практически без потерь
Если вам срочно необходимо преобразовать AV1 в H.264/H.265 или наоборот, вам понадобится хороший декодер, например HandBrake. Это инструмент для конвертации видео с открытым исходным кодом, созданный бесплатно для кодирования, транскодирования, конвертации и сжатия видеофайлов. Программное обеспечение специально разработано для начинающих и профессионалов и имеет интуитивно понятный интерфейс с множеством функций. Еще следует иметь в виду, что этот инструмент известен своим усовершенствованным алгоритмом сжатия, который уменьшает размер файла, но с сохранением качества видео.
Качество сжатия конкретного видео может сильно зависеть от параметров кодирования
Большинство об этом не задумывается (должны же были авторы кодеков всё предусмотреть!) Но у кодеков, как правило, есть достаточно много параметров, позволяющих при том же размере файла заметно (а то и кардинально) изменить качество. В первую очередь это параметры стратегии битрейта, особенно режимы "quality - качество " & "bitrate". Потом параметры префильтрации. В частности, deinterlacing, ибо встречаются видео, которые сжимали в чересстрочной развертке в MPEG-4 (и, видимо, удивлялись слабому качеству, denoising (подавление шумов) и т.д. Существуют параметры управления частотой ключевых кадров, маской использования B-frames и т.д. Это означает, что имея кодеки А и Б (примерно равного качества), можно легко установить один кодек в режим Maximum Perfomance (сдвинуть ползунок до предела в сторону скорости сжатия), а другой в режим 2-pass Maximum Quality (сдвинуть ползунок до предела в сторону максимального качества), можно получить 2 ролика одного размера, но существенно разного качества.
Еще немного расскажу о совместимости кодека AV1, на тот случай если вы решили производить или перекодировать видео в AV1.
Где в настоящие время используется AV1?
AV1 получил широкую поддержку отрасли: такие крупные поставщики контента, как Netflix, YouTube и Facebook, постепенно переходят на формат AV1.
Он используется в потоковых сервисах, CDN, видеоконференциях, вещании и онлайн-видеоплатформах для обеспечения более качественной передачи видео при одновременном снижении использования данных. Программное обеспечение для редактирования видео, такое как DaVinci Resolve, также добавило поддержку кодирования AV1.
Платформы и потоковые сервисы, поддерживающие AV1
YouTube: Пользователи могут включить AV1 для воспроизведения видео YouTube в настройках: учетная запись YouTube > Воспроизведение и производительность > Настройки AV1. Вы можете выбрать «Авто», «Предпочитать AV1 для SD» или «Всегда предпочитать AV1»
Если вам интересно, транслируется ли видео YouTube в формате AV1, вы можете проверить информацию Stats for Nerds, щелкнув правой кнопкой мыши по проигрывателю. YouTube также поддерживает трансляцию AV1 с обновлением OBS studio 29.1 — замечательная функция, которую PCworld рассматривает как будущее потоковой передачи на GPU.
Twitch: Анонсированная на выставке CES в январе 2024 года, Twitch и Nvidia работают вместе, чтобы внедрить AV1 в Twitch. Twitch Closed Beta экспериментирует с функцией потоковой передачи AV1 на графических процессорах NVIDIA GeForce RTX 40 серии и работает на основе функций OBS Studio. AV1 позволит зрителям Twitch смотреть с разрешением до 1440p 120 FPS при 8 Мбит/с.
Необходимое программное обеспечение, поддерживающее AV1
Handbrake : это бесплатное программное обеспечение для перекодирования видео добавило поддержку кодирования AV1 для графических процессоров NVIDIA GeForce RTX 40 и AMD RDNA Radeon RX 7000. Для версии 1.6.0 и более поздних версий пользователи также могут выбрать программное кодирование SVT-AV1 на базе CPU. Выходное видео AV1 будет упаковано в MP4, MKV или WebM.
OBS Studio : это бесплатное программное обеспечение для записи видео и потоковой трансляции с открытым исходным кодом добавило поддержку кодирования AV1 для оборудования Intel Quick Sync Video, NVIDIA NVENC и AMD HW. Геймеры с поддерживаемыми устройствами теперь могут наслаждаться кодированием AV1 в реальном времени для потоковой трансляции. В OBS Studio 28.1 была введена поддержка кодирования NVENC AV1 для GeForce RTX 4000. В OBS Studio 29.0 добавлена поддержка AMD AV1 Encoder для графических процессоров RDNA3 серии RX7000 и Arc в Windows. Добавлен кодировщик AMD HW AV1 в простой режим вывода.
VLC https://www.videolan.org/vlc/ : Как один из самых популярных видеоплееров с открытым исходным кодом, VLC также поддерживает декодирование AV1 с версии 3.0 и выше.
5Kplayer https://www.5kplayer.com/: — это универсальный медиаплеер, который хорошо работает на Windows и macOS. Он поставляется с более чем 450 видеокодеками и более 180 для аудио.
PotPlayer https://potplayer.daum.net/ — эффективный проигрыватель AV1 для Windows, который поставляется с устройством записи экрана, видеоредактором и ТВ-приемником.
FFmpeg https://ffmpeg.org/: — это программа для конвертирования видео и аудиофайлов так же поддерживает кодирование NVIDIA NVENC AV1 и Intel QSV AV1 начиная с версии 4.1.
Какой кодек выбрать?
Когда дело доходит до видеокодеков, поиск идеального кодека — весьма субъективный вопрос, поскольку каждый кодек предлагает разные функции.
Если вы ищете лучшее качество видео, выбирайте AV1. Алгоритм не требует лицензионных отчислений и доступен для использования по всему миру. HEVC не может похвастаться тем же.
С другой стороны, если вы ищете наиболее совместимый видеокодек, H264 подойдет вам лучше всего.
Наконец, кодек H.265 отлично подойдет, если вам нужно хорошее качество и сжатие без дополнительных затрат на кодирование в отличии от AV1.