Как сменить кодек на ютубе
Перейти к содержимому

Как сменить кодек на ютубе

  • автор:

Как принудительно указать кодек видео на YouTube

Полезное расширение для задротов поможет воспроизвести видео на YouTube с определённым кодеком. Давайте разберёмся чем это полезно.

enhanced-h264ify помогает выбрать в каком кодеке YouTube будет показывать видео. Можно выбрать h264, VP8/9 или AV1.

После установки расширения можно выбрать какие кодеки блокировать. Оставшиеся будут использоваться при воспроизведении.

С точки зрения авторов роликов разница в выборе кодека колоссальная. А вот для зрителей это уже не так важно. Основная разница заключается в том, что h264 поддерживает аппаратное декодирование, а VP8 и VP9 нет.

Таким образом, при просмотре видео с кодеком h264 снижается потребление ресурсов ЦП. Но при этом будет доступно максимальное качество 1080р, а звук будет использовать кодек m4a.

Как включить поддержку AV1 на YouTube

AV1 — новый медиакодек который в настоящее время интегрируется в различные веб-браузеры, такие как Mozilla Firefox или Google Chrome. Кодек разработан консорциумом компаний и позиционируется как бесплатная альтернатива закрытым кодекам H.264 и H.265.

Av1 обещает меньшие размеры файлов, не влияя на качество видеопотока.

Google недавно опубликовал на сайте YouTube тестовый плейлист с кодированными AV1 и поддерживающими видео. Основная идея плейлиста — дать разработчикам и пользователям возможность проверить функциональность, производительность и другие показатели видео в формате AV1 на сайте YouTube.

Поддержка AV1 ограничена на момент написания статьи, и на данный момент ведутся приготовления к добавлению поддержки. Пользователям Chrome необходимо использовать браузер как минимум 70-й версии, а пользователям Firefox — как минимум 63-ю версию.

Пользователи Firefox также должны изменить настройки в браузере, чтобы включить поддержку Av1; это делается путем загрузки about: config? filter = media.av1.enabled в адресную строку браузера и переключения предпочтения на True двойным щелчком по имени предпочтения.

Обратите внимание, что YouTube может отображать «вам нужны» инструкции для Firefox, даже если вы уже установили значение True.

Mozilla Firefox по умолчанию поддерживает AV1 во всех поддерживаемых версиях веб-браузера.

поддержка youtube av1

Примечание. YouTube интегрировал AV1 на сайт и использует алгоритм, который определяет, какой кодек использовать. Вы можете изменить настройку на странице «Воспроизведение учетной записи» с «Авто» на «Предпочитать AV1 для SD» или «Всегда предпочитать AV1».

кодек youtube av1

После этого загрузите страницу Testtube на YouTube, чтобы включить поддержку AV1. Прокрутите страницу вниз, пока не дойдете до раздела Av1.

Видеокодек AV1 обеспечивает расширенное сжатие, обеспечивая более плавную потоковую передачу в формате HD и экономию данных для большего количества видео в дороге.

Поскольку это новый формат, для потоковой передачи AV1 в HD требуется мощный компьютер, и в настоящее время только для некоторых видео доступен AV1. При выборе потоковой передачи AV1 в SD будет использоваться AV1 до 480p и VP9 для более высоких форматов.

Обратите внимание, что для воспроизведения Av1 требуется компьютер, более мощный по сравнению с предыдущими кодеками, которые YouTube использует прямо сейчас для потоковой передачи видео на пользовательские устройства.

Основное различие между двумя вариантами заключается в том, что «Всегда предпочитать AV1» использует кодек, если он доступен для видео, тогда как «Предпочитать AV1 для SD» ограничивает выбор видео SD. Основная идея этих двух вариантов состоит в том, чтобы не доводить устройства до предела производительности при воспроизведении видео AV1 на YouTube.

Вы можете выбрать «Всегда предпочитать AV1» и посмотреть, насколько хорошо ваше устройство работает при воспроизведении видео на YouTube, поддерживающих AV1. Если воспроизведение прерывается или ресурсы загружаются на высокий уровень, вам следует подумать о выборе варианта «предпочитать Av1 для SD», который ограничивает воспроизведение кодека AV1 видео с разрешением 480p и более низким.

После того, как вы сделали выбор, вы можете указать в браузере на Тестовый плейлист AV1 на YouTube, чтобы начать воспроизведение видео, поддерживающих кодек.

youtube av1

Вы, наверное, задаетесь вопросом, как узнать, использует ли видео кодек AV1 или другой для воспроизведения. Вы можете узнать это, щелкнув видео правой кнопкой мыши и выбрав пункт «Статистика для ботаников» в контекстном меню.

Проверьте список кодеков; если вы видите av01, используется кодек AV1.

Теперь ваша очередь : Поддержка AV1 вызывает у вас интерес?

Новый кодек AV1: ускоряем загрузку видео в браузере

В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.

Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.

AV1 в браузере

YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».

Мы в Злых Марсианах уже используем его на нашем сайте и на Ампллифере. В этой статье я поделюсь опытом внедрения AV1 и шаг-за-шагом расскажу, как вставить видео, чтобы оно работало во всех браузерах.

Кодеки и контейнеры

С картинками всё просто: или JPEG с PNG для всех браузеров, или делать более компактные файлы в WebP для современных браузеров. Мы всегда можем быть уверены, что в файлах .png будет PNG-формат (за редким исключением PNG-бомб, от которых может защитить imgproxy).

С видео-файлами всё сложнее. Расширение файла ( .mp4 , .wmv , .webm или .mov ) говорит только о контейнере. В то время, как видео-файлы состоят из трёх различных компонентов:

  1. Видео-кодек определяет как сильно вы сможете сжать видео, и чем придётся пожертвовать. Основные видео-кодеки Веба: H.264, HEVC, VP9 и, теперь, AV1.
  2. Аудио-кодек сжимает звук. Само собой, он не нужен, если в видео нет звука. Популярные варианты: MP3, Opus и AAC.
  3. Контейнер хранит оба видео- (сжатого каким-то видео-кодеком) и аудио-потока (сжатого каким-то аудио-кодеком). А также дополнительные данные, типа субтитров и мета-информации. Популярные контейнеры: MP4, MOV, WebM.

Узрите AV1

AV1 — видео-кодек, который был выпущен год назад, в марте 2018. Его создавали, чтобы превзойти кодеки предыдущего поколения — HEVC, VP9, H.264 и VP8.

Диаграмма поколений видео-кодеков
Диаграмма поколений кодеков от Цахи Левент-Леви

За счёт новых оптимизаций, AV1 сжимает видео на 30—50% лучше, чем H.264 или VP8, и до 30% лучше, чем HEVC. Но кодек был выпущен недавно и пока имеет несколько детских болезней:

  • Текущий кодер не оптимизирован. AV1 сжимает видео очень медленно (новый быстрый кодер на Rust уже в разработке). Кодек не подойдёт для потокового вещания. Если мы говорим о статичных видео на лэндингах — эта проблема нам не актуальна.
  • Пока кодек поддерживается только десктопным Chrome и Firefox под Windows. Поддержки Safari и Edge пока нет (хотя Microsoft уже тестирует её). Надо будет, как минимум, 2 файла: AV1 для Chrome и Firefox и H.264 для остальных браузеров.

Сравнение качества картинки у разных кодеков на разном битрейте
Сравнение качества картинки у разных кодеков на разном битрейте — AV1 выигрывает

Готовим AV1 правильно

Давайте, наконец-то, перейдём к практике. Вначале определимся с контейнером. В теории, AV1 можно поместить в разные контейнеры, но MP4 компактнее и рекомендуется в спецификации. Для звука в AV1 мы возьмём Opus, потому что отлично сжимает звук.

Чтобы видео работало во всех браузерах, мы будем генерировать 3 файла:

  1. Для десктопного Chrome и Firefox на Windows (31% рынка на март 2019): контейнер MP4 с AV1 для видео и Opus для звука.
  2. Для Safari и Edge (16% рынка) — MP4 с HEVC и AAC.
  3. Для остальных: большой MP4-файл с H.264 и AAC.

Для сжатия я рекомендую взять консольный FFmpeg. Есть много графических утилит, но в консоли легче сохранить опции и потом запускать конвертацию автоматически. Убедитесь, что используете именно последнюю версию FFmpeg. Версии до 4.1 не поддерживают AV1 в MP4.

  1. Установите Homebrew.
  2. brew install ffmpeg
  1. wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
  2. tar -xf ffmpeg-release-amd64-static.tar.xz
  3. sudo cp ffmpeg-4.1-64bit-static/ff* /usr/local/bin/

Переходим к конвертации файла H.264, который нужен нам для старых браузеров. Поскольку все наши файлы используют контейнер MP4, я буду использовать .av1.mp4 , .hevc.mp4 и .h264.mp4 постфиксы. Не пугайтесь длинной команды, мы потом её всю разберём:

Теперь откройте video.h264.mp4 . Если качество хорошее, а размер большой — попробуйте увеличить -crf ( -crf 26 потом -crf 28 ). Эта опция уменьшит размер файла ценой уменьшения качества. Подбор баланса качества и размера — искусство.

Теперь пришло время для конвертации AV1 — напоминаю, будет дольше H.264. Кодек пока не использует всю мощь процессора (имеет смысл запустить конвертацию нескольких файлов параллельно).

Снова поиграйте с -crf для подбора идеального баланса качества и размера.

Теперь то же самое для HEVC.

Скопируйте video.h264.mp4 , video.hevc.mp4 и video.av1.mp4 в корень вашего сайта.

Разбираемся с опциями FFmpeg

Команды выше выглядят как заклинание вызова демона? Не волнуйтесь, это не PostCSS. Давайте разберём опции.

-i SOURCE.mov указывает входящий файл, откуда FFmpeg возьмёт потоки видео и аудио, пережмёт их и запакует в новый контейнер.

-map_metadata -1 удалит мета-информацию из видео (например, программу, в которой видео было создано). В Вебе такая информация редко бывает полезной.

-c:a libopus или -c:a libfdk_aac выставляют аудио-кодеки. Если вам не нужен звук, замените их на -an .

-c:v libaom-av1 выбирает видео-кодек — библиотеку, которая сожмёт кадры видео-потока.

-crf 34 — Constant Rate Factor, баланс качества и размера. Это как слайдер качества JPEG, только он идёт в другом направлении (0 — лучшее качество и самый большой файл). Шкала CRF разная у H.264 и AV1 — у H.264 идёт до 51, у AV1 до 61. CRF для AV1 и H.264 будет разный.

-preset veryslow заставляет H.264 и HEVC кодеки сжимать файл сильнее даже ценой резкого роста времени конвертации.

-profile:v main используется у H.264, чтобы выбрать профиль кодека. Только «Main» будет работать в Safari.

-b:v 0 выставляет минимальный битрейт для AV1, чтобы в видео было постоянное качество.

-pix_fmt yuv420p (формат пикселя) — хитрый способ уменьшить размер файла. Он оставляет оригинальное разрешение для яркости, но уменьшает разрешение для цвета. Наши глаза хуже видят цвет, поэтому не замечают эту хитрость. Удалите эту опцию, если в вашем случае она будет мешать.

-movflags +faststart перемещает всё само важное в начало файла, чтобы браузер мог проигрывать видео до окончания загрузки.

-vf «scale=trunc(iw/2)*2:trunc(ih/2)*2» изменит размер сторон видео к ближайшим чётным (некоторые кодеки могут работать с разрешением 300×200 и 302×200, но не будут работать с 301×200). Если вы уверены, что везде разрешение делится на 2 — можете убрать эту опцию.

-strict experimental нужна для AV1, его кодер ещё экспериментальный.

video.av1.mp4 выставляет имя итогово файла.

Запускаем видео в браузерах

Теперь нам нужно, чтобы каждый браузер загружал видео, которое он поддерживает. Для этого у <source> есть атрибут type . И советую почитать про опции у <video>.

<source> похожи на выражения if…else — браузер читает их сверху вниз, пока не найдёт тот, чей type он поддерживает.

В type можно указать весь формат файла: контейнер ( video/mp4 для MP4), видео-кодек ( av01.0.05M.08 для AV1, hevc для HEVC и avc1.4D401E для H.264) и аудио-кодек ( opus для Opus и mp4a.40.2 для AAC).

Бонус: как сконвертировать GIF в AV1 и H.264

В 2019 использовать GIF для коротких видео — большой грех. GIF весит в 20—40 раз больше, чем H.264 или AV1. GIF сильнее бьёт по CPU, заставляет аккумулятор утекать быстрее. Если вам нужно короткое зацикленное видео, берите видео-кодеки. И FFmpeg может конвертировать видео прямо из GIF.

Конвертируем GIF в H.264:

Генерируем ещё более маленький AV1:

Теперь вставим animation.h264.mp4 и animation.av1.mp4 в HTML.

Опции autoplay и loop делают из видео «гифку» — цикленное видео, которое сразу играет после загрузки страницы. playsinline блокирует Safari от открытия видео на весь экран при клике на видео.

Как улучшить качество стрима на Youtube

VP9

Есть очень лёгкий способ улучшить качество онлайн трансляции на Youtube изменив кодек с AVC на VP9. Дело в том что при использовании разрешения FullHD (1920×1080) получить хорошее качество стрима не получится в принципе, так как Youtube будет при таком разрешении кодировать видео именно в устаревший AVC кодек, но стоит поднять разрешение до QHD (2560×1440) как Youtube начинает использовать кодек VP9 – который в свою очередь (даже с тем же битрейтом) будет выдавать более детализированную картинку во время онлайн трансляции.

От краткой теории, переходя к делу, ты можешь сказать что при масштабировании экрана в OBS потеряется производительность, так как не у всех мощные компьютеры и/или видеокарты. А я отвечу что со стороны OBS что то менять не обязательно! Достаточно создать новый ключ трансляции в творческой студии Youtube, там поставить галку на “Выбрать частоту кадров и разрешение”, после чего выбрать разрешение 1440 пикселей и в завершение поставить галку на “Включить частоту кадров 60 кадров в секунду”. Нажать создать и добавить ключ в OBS.

Готово. Теперь даже при стриме в 1080p, стрим будет проходить в 1440p и при этом масштабироваться на стороне серверов Youtube. Ну и самый сок – получаем лучший кодек VP9 по сравнению с AVC.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *