Кодек av01 чем открыть
Для эффективного сжатия видеофайлов разрабатываются различные кодеки, например, AV1. Здесь я покажу, как включить воспроизведение видео AV1 в Windows, Linux и macOS.
Что такое AV1?
AV1 — видео-кодек, который был выпущен в марте 2018. Его создавали, чтобы превзойти кодеки предыдущего поколения — HEVC, VP9, H.264 и VP8.
За счёт новых оптимизаций, AV1 сжимает видео на 30—50% лучше, чем H.264 или VP8, и до 30% лучше, чем HEVC.
Диаграмма поколений кодеков от Цахи Левент-Леви
Кроме того, этот кодек не требует авторских отчислений и имеет открытый исходный код, что облегчает его широкое внедрение.
Готовим AV1 правильно
Давайте, наконец-то, перейдём к практике. Вначале определимся с контейнером. В теории, AV1 можно поместить в разные контейнеры, но MP4 компактнее и рекомендуется в спецификации. Для звука в AV1 мы возьмём Opus, потому что отлично сжимает звук.
Чтобы видео работало во всех браузерах, мы будем генерировать 3 файла:
- Для десктопного Chrome и Firefox на Windows (31% рынка на март 2019): контейнер MP4 с AV1 для видео и Opus для звука.
- Для Safari и Edge (16% рынка) — MP4 с HEVC и AAC.
- Для остальных: большой MP4-файл с H.264 и AAC.
Для сжатия я рекомендую взять консольный FFmpeg. Есть много графических утилит, но в консоли легче сохранить опции и потом запускать конвертацию автоматически. Убедитесь, что используете именно последнюю версию FFmpeg. Версии до 4.1 не поддерживают AV1 в MP4.
Переходим к конвертации файла 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 в корень вашего сайта.
Xiaomi TV stick 4K
Далее ещё одна недорогая новинка с поддержкой декодирования AV1, которая только поступила в продажу — Xiaomi TV stick 4K.
По аппаратной части он очень похож на стик от Realmi, тот же Amlogic S905Y4, те же 2 ГБ ОЗУ, 8 ГБ ПЗУ и быстрый WiFi/BT модуль.
Теперь тв-стик от Xiaomi может воспроизводить контент в качестве 4К. В отличии от Realmi стика у Xiaomi заявлена поддержка Dolby Vision и Dolby Atmos. Также у стика есть лицензия от Netflix.
Windows
Чтобы получить поддержку AV1 под Windows, просто перейдите в официальный магазин Microsoft и скачайте официальное расширение AV1.
Mecool KT1
Интересный тв-бокс с подержкой декодирования AV1 и возможностью просмотра цифрового телевидения DVB T/T2/C. В комплекте есть отличный Bluetooth с встроенным микрофоном.
Построен на Amlogic S905X4-B. Формула памяти 2 ГБ ОЗУ и 16ГБ ПЗУ. В приставке установлен быстрый 2Т2R двухдиапазонный WiFi/BT модуль и порт RJ45 для Ethernet подключения 100 Мбит/с.
Управляется операционной системой Android TV с лицензиями от Google и Dolby Audio.
KT1 легко переваривает контент в качестве 2160Р с HDR и может выводить многоканальный звук в DD+ и DTS. Из недостатков — нет лицензии от Netflix и нет возможности включить autoframerate.
В подбрке представлены безусловно не все медиапроигрыватели с поддержкой AV1, есть еще ряд устройств на Amlogic S905X4 и S905W2, но они более проблематичны и имеют не очень хорошие отзывы.
Кодек Aomedia Video 1, или AV1, начинает оказываться в руках потребителя. Ранее в этом году Netflix попал в заголовки газет, заявив, что начал потоковую передачу AV1 некоторым зрителям Android. Совсем недавно Google объявил, что добавит кодек AV1 в свое приложение для видеочата Duo, а MediaTek объявил о том, что он будет поддерживать видеопотоки YouTube AV1 на своей Dimensity 1000 5G SoC. Так в чем суета? Что такое кодек AV1? Почему это важно? Вот краткий обзор AV1 и его значения для потоковой передачи видео за 5 лет.
Linux and macOS
Поиск простого решения для воспроизведения видео AV1 на Linux и macOS не так прост, как в Windows. Однако есть решение — VLC, универсальный медиаплеер, поддерживает воспроизведение AV1. Достаточно установить VLC и использовать его для воспроизведения видео AV1.
Кроме того, Firefox также поддерживает воспроизведение AV1. Чтобы подтвердить, что воспроизведение AV1 включено:
1. В строке URL-адреса Firefox введите:
3. В поле поиска введите «media.av1.enabled». Убедитесь, что в записи написано «true». Если написано «false», переключите значение на «true».
Ожидается, что Chrome также будет поддерживать воспроизведение AV1 с выходом Chrome 85.
Telegram
Запускаем видео в браузерах
Теперь нам нужно, чтобы каждый браузер загружал видео, которое он поддерживает. Для этого у есть атрибут type . И советую почитать про опции у .
похожи на выражения if…else — браузер читает их сверху вниз, пока не найдёт тот, чей type он поддерживает.
В type можно указать весь формат файла: контейнер ( video/mp4 для MP4), видео-кодек ( av01.0.05M.08 для AV1, hevc для HEVC и avc1.4D401E для H.264) и аудио-кодек ( opus для Opus и mp4a.40.2 для AAC).
Поехали?
Для теста я использовал известный мультик про кролика Big Bucks Bunny, длиной 10 минут и размером 150Мб.
Железо
- AMD Ryzen 5 1600 (12 потоков) + 16GB DDR4 (Windows 10)
- Intel Core i7 4770 (8 потоков) + 32GB DDR3 (Windows 10)
- Intel Core i5 3570 (4 потока) + 8GB DDR3 (Windows 10)
- Intel Xeon E5-2650 V2(16 потоков) + 32GB DDR3 (Windows 10)
Командная строка с параметрами
Кодеки и контейнеры
С картинками всё просто: или JPEG с PNG для всех браузеров, или делать более компактные файлы в WebP для современных браузеров. Мы всегда можем быть уверены, что в файлах .jpg будет PNG-формат (за редким исключением PNG-бомб, от которых может защитить imgproxy).
С видео-файлами всё сложнее. Расширение файла ( .mp4 , .wmv , .webm или .mov ) говорит только о контейнере. В то время, как видео-файлы состоят из трёх различных компонентов:
- Видео-кодек определяет как сильно вы сможете сжать видео, и чем придётся пожертвовать. Основные видео-кодеки Веба: H.264, HEVC, VP9 и, теперь, AV1.
- Аудио-кодек сжимает звук. Само собой, он не нужен, если в видео нет звука. Популярные варианты: MP3, Opus и AAC.
- Контейнер хранит оба видео- (сжатого каким-то видео-кодеком) и аудио-потока (сжатого каким-то аудио-кодеком). А также дополнительные данные, типа субтитров и мета-информации. Популярные контейнеры: MP4, MOV, WebM.
Ugoos X4 PRO
Ugoos X4 PRO выпускается с формулой памяти 4/64 ГБ ОЗУ/ПЗУ. Построен на SoC Amlogic S905X4. Оснащен быстрым WiFi/BT модулем и имеет возможность проводного Ethernet подключения 1000 Мбит/с.
Работает под управлением Android 11 AOSP. Оптимизированная прошивка от Ugoos позволяет пользоваться целым набором различных «плюшек»: возможность создания SMB сервера, включение root прав, переназначение кнопок, управление autoframerate и HDR.
Медиапроигрыватель отлично проигрывает 4К HDR контент с autoframerate и поддерживает вывод многоканального звука.
Доступна установка ATV модуля через Magisk.
Из недостатков — нет лицензии от Netflix, уровень DRM защиты Widevine L3, нет комплектного bluetooth пульта с микрофоном (можно заказать конфигурацию включающую доп. пульт).
СЧЕТЧИКИ
Результаты
Время кодирования: 55минут
Размер видео: 75мб
За качество говорить не буду, потому что подбор оптимальных параметров кодирования это задача дня заврашнего, а сегодня я преследовал цель добиться вменяемого времени кодирования и мне кажется это получилось. Я опасался, что склеенные кусочки склеятся плохо и будут дерганья в этих моментах, но нет, результат шел ровно, без каких-то рывков.
Отдельно отмечу, что для 1080p требуется около гигабайта оперативной памяти на поток, поэтому памяти должно быть много. Также замечу, что под конец стадо бежит со скоростью самого медленного барана и в то время как Ryzen и i7 уже давно закончили кодирование, Xeon и i5 еще продолжали пыхтеть над своими кусочками. Т.е. более длинное видео в целом кодировалось бы с большим общим fps за счет того, что более быстрые ядра успели бы сделать больше работы.
Запуская конвертацию на одном Ryzen 5 1600 с многопоточностью, максимум что я имел было около 1.5 fps. Здесь же, учитывая, что последние 10 минут кодирования — это добивка последних кусочков медленными ядрами, можно сказать, что получилось около 5-6 fps, что уже не так мало для такого продвинутого кодека. Вот и все, чем я хотел поделиться, надеюсь кому-нибудь это может пригодиться.
Сегодня подборка из семи Android медиапроигрывателей, которые могут аппаратно декодировать набирающий популярность кодек AV1.
AOMedia Video 1 (AV1) - видео-кодек, который был разработан Alliance for Open Media при участии Amazon, Apple, Facebook, Google, IBM, Intel, Microsoft, Mozilla и Netflix в марте 2018 года. Он был создан, чтобы превзойти кодеки предыдущего поколения — HEVC, VP9, H.264 и VP8.
AV1 обеспечивает на 30-50% лучшее сжатие в сравнении с H.264 или VP8 и до 30% лучшее, чем HEVC. Такое сжатие позволяет получить меньший битрейт при одинаковом качестве видео.
Большинство стримминговых сервисов всё ещё используют кодирование в HEVC (H.265), но процесс перехода на AV1 должен ускориться из за требования компании Google о поддержке всеми сертифицированными ей Android TV приставками декодирования AV1 с апреля 2021 года.
Разбираемся с опциями 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 будет разный.
Facebook подобрал примерное соответствие между значениями CRF для H.264 и AV1:
19 → 27, 23 → 33, 27 → 39, 31 → 45, 35 → 51, 39 → 57.
-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 выставляет имя итогово файла.
Включите воспроизведение видео AV1 на Windows, Linux и macOS
Узрите AV1
AV1 — видео-кодек, который был выпущен год назад, в марте 2018. Его создавали, чтобы превзойти кодеки предыдущего поколения — HEVC, VP9, H.264 и VP8.
Диаграмма поколений кодеков от Цахи Левент-Леви
Если вам стало интересно, как именно AV1 удалось превзойти остальные кодеки в сжатии, почитайте технические подробности в переводах на Хабре:
«Видео следующего поколения: представляем AV1»
«Кодек нового поколения AV1: корректирующий направленный фильтр CDEF»
За счёт новых оптимизаций, AV1 сжимает видео на 30—50% лучше, чем H.264 или VP8, и до 30% лучше, чем HEVC. Но кодек был выпущен недавно и пока имеет несколько детских болезней:
- Текущий кодер не оптимизирован. AV1 сжимает видео очень медленно (новый быстрый кодер на Rust уже в разработке). Кодек не подойдёт для потокового вещания. Если мы говорим о статичных видео на лэндингах — эта проблема нам не актуальна.
- Пока кодек поддерживается только десктопным Chrome и Firefox под Windows. Поддержки Safari и Edge пока нет (хотя Microsoft уже тестирует её). Надо будет, как минимум, 2 файла: AV1 для Chrome и Firefox и H.264 для остальных браузеров.
Сравнение качества картинки у разных кодеков на разном битрейте — AV1 выигрывает
Время выводов
AV1 ещё экспериментальный. Но его уже можно использовать, чтобы сделать четверть ваших пользователей счастливее. Пара команд FFmpeg сгенерируют видео-файлы. с самого начала создан, чтобы отдавать видео по возможностям браузеров. Мы уже используем AV1 в продакшене и всё работает отлично (исключая время ожидания, пока AV1-кодер закончит работу).
Периодически, я интересуюсь видеокодеками и тем, насколько они становятся эффективнее по сравнению со своими предшественниками. В свое время, когда после H264 вышел HEVC, мне было безумно интересно его пощупать, но мое железо того времени оставляло желать лучшего.
Сейчас же железо подтянулось, но и HEVC давно устарел, ему на смену жаждет придти открытый AV1, обещающий нам до 50% экономии по сравнению с 1080p H264, но если скорость качественного кодирования в HEVC кажется медленноватой (по сравнения с H264), то AV1 со своим ~0.2 fps деморализует полностью. Когда что-то кодируется настолько медленно, то это значит, что даже простой 10 минутный ролик, будет обрабатываться около суток. Т.е. чтобы просто посмотреть подходят ли параметры кодирования или нужно добавить немного битрейта, придется ждать не просто часами, а днями…
И вот, как-то раз, любуясь красивым закатом (кодека H264), я подумал: «А что, если натравить на AV1 все железо которое у меня есть одновременно?»
Я пробовал кодировать AV1 с использованием тайлов и многоядерности, но прирост производительности показался мне не таким уж эффективным на каждое добавленное ядро процессора, давая около полтора FPS при самых быстрых настройках и 0.2 при медленных, поэтому в голову пришла кардинально другая идея.
Посмотрев, что у нас есть на сегодня актуального по AV1, я составил список:
- Встроенный в ffmpeg кодировщик libaom-av1
- Проект rav1e
- Проект SVT-AV1
- Кодировщик разрежет исходное видео на кусочки по n секунд
- На каждом моем компьютере будет web-сервер со специальным скриптом
- Мы кодируем в один поток, а значит сервер может одновременно кодировать столько кусочков, сколько у него процессорных ядер
- Кодировщик будет отправлять кусочки на серверы, и скачивать обратно закодированные результаты
- Когда все кусочки будут готовы, кодировщик склеит их в один и наложит звук из исходного файла
Mecool KD2
Миниатюрный проигрыватель с поддержкой декодирования AV1 — Mecool KD2.
Построен на Amlogic S905Y4. Оснащён 4 ГБ ОЗУ и хранилищем на 32 ГБ. Работает под управлением Android TV11.
Из достоинств можно выделить:
- SoC Amlogic S905Y4 с аппаратной поддержкой AV1;
- объём ОЗУ и ПЗУ;
- лицензированная Android TV 11;
- быстрый WiFi/BT 5.0 модуль;
- комплектный bluetooth/ИК пульт со встроенным микрофоном.
К недостаткам можно отнести:
- постоянно работающий HDR;
- не работающий autoframerate;
- отсутствие поддержки Dolby Vision и лицензии от Netflix.
Недавний обзор на него — ТУТ
Реализация
Сразу скажу, что реализация сделана под Windows. В теории ничего не мешает сделать тоже самое и под другие ОС, но я делал под то, что стояло у меня.
- Web-сервер с PHP
- ffmpeg
- rav1e
Также упомяну про безопасность, которой нет. Все, что я делал — я делал внутри локальной сети, поэтому никаких проверок и авторизаций не сделано, а возможностей для нанесения вреда злоумышленниками — полно. Поэтому, если это будет тестироваться не в защищенных сетях, вопросами безопасности нужно озаботится самостоятельно.
2. FFmpeg — готовые бинарники я качал с Zeranoe builds
3. rav1e — также можно скачать бинарник из релизов проекта rav1e
- Получаем кусочек, сохраняем его в папку
- Генерим CMD файл с командой для кодирования и удаление самого CMD файла в конце
- Запускаем CMD файл
- Есть исходный файл, есть файл результата и есть CMD файл — кодирование еще идет
- Есть исходный файл, есть файл результата и CMD файла нет — кодирование завершено
Скрипт сообщает сколько у него всего потоков и сколько использовано, чтобы кодировщик решал, присылать ему еще кусочки или нет. Также скрипт сообщает о том, какие кусочки сейчас в работе и какие готовы, чтобы кодировщик мог скачать готовые и удалить их с сервера.
Лежит где угодно. Важный момент: как вы видите, командная строка для кодирования прописывается именно в этом файле и эти пути должны быть едины на всех серверах. Поэтому на каждом сервере я скопировал файлы:
- c:\Apps\OneDrive\commands\bin\ffmpeg\ffmpeg.exe — из Zeranoe builds
- c:\Apps\OneDrive\commands\bin\ffmpeg\rav1e.exe — из проекта rav1e
Файл для запуска скрипта кодирования, лежит рядом со скриптом. Путь к PHP настраиваете сами.
encoding.cmd:
Респект за пост! Спасибо за работу!
Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:
Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.
AV1 не готов для масс (пока)
Без роялти и на 30% лучше. Где я могу зарегистрироваться? Но есть проблема, на самом деле огромная проблема. Кодирование файлов AV1 идет медленно. Мой оригинальный 4K клип с моего смартфона длится 15 секунд. Для кодирования этого с использованием только программного обеспечения в H.264 на моем ПК требуется около 1 минуты, что в четыре раза больше длины клипа. Если я использую аппаратное ускорение, доступное на моей видеокарте NVIDIA, тогда это займет 20 секунд. Просто немного дольше, чем оригинальный клип.
Для H.265 все немного медленнее. Только программное кодирование занимает около 5 минут, что немного дольше, чем оригинал. К счастью, аппаратное кодирование в H.265 также занимает всего 20 секунд. Поэтому аппаратное кодирование H.264 и H.265 похоже на мою настройку.
До того как все фанаты видео начали кричать, да, я знаю, что есть миллиард различных настроек, которые могут изменить время кодирования. Я приложил все усилия, чтобы удостовериться, что я кодирую как для подобного.
Мое оборудование не поддерживает кодирование AV1, поэтому мой единственный вариант – программный. Тот же 15-секундный клип, который занял 5 минут для программного обеспечения H.265, занимает 10 минут для Av1. Но это было не так, как было, это было изменено, чтобы получить лучшую производительность. Я протестировал несколько разных вариантов настроек качества и пресетов, 10 минут было лучшим временем. Один вариант, который я пробежал, занял 44 минуты. 44 минуты на 15 секунд видео. Это использует кодировщик SVT-AV1, которым увлекается Netflix. Существуют альтернативы, но они намного медленнее, например часы и часы, гораздо медленнее.
Кодирование клипа 4K 15 сек. | SW или HW | Время |
---|---|---|
H.264 | Программное обеспечение | 1 мин |
H.264 | аппаратные средства | 20 сек |
H.265 | Программное обеспечение | 5 минут |
H.265 | аппаратные средства | 20 сек |
AV1 | Программное обеспечение | 10 минут |
Это означает, что если у меня есть 1-часовой фильм, который я отредактировал со своего отпуска в экзотическое место, то для преобразования его в H.265 с использованием аппаратного ускорения на моем компьютере потребуется 80 минут. Один и тот же файл с использованием современных программных кодеров AV1 займет 40 часов!
Вот почему он не готов для масс (пока). Улучшения придут к кодировщикам. Программное обеспечение станет лучше, и аппаратная поддержка начнет появляться. Декодеры уже становятся экономными и эффективными, поэтому Netflix может начать потоковую передачу некоторого контента в AV1 на устройства Android. Но с точки зрения повсеместной замены H.264 нет, пока нет.
Одна интересная вещь в заявлениях Google относительно AV1 для Duo заключается в том, что она подразумевает кодирование AV1 на клиентских устройствах и декодирование AV1. Я написал по электронной почте Google об этом, и были обнадеживающие признаки того, что он собирался рассказать мне некоторые детали, но его планы относительно кодека AV1 и Duo, но затем все в списке рассылки загадочным образом затихли. Если кто-нибудь из Google вернется ко мне, я дам вам знать!
Realmi 4K
Новинка и одна из самых доступных моделей компактных медиапроигрывателей с поддержкой аппаратного декодирования AV1 — тв-стик Realmi 4K. В комплект входит Bluetooth пульт ДУ со встроенным микрофоном для голосового управления/поиска.
Стик построен на четырёхъядерной энергоэффективной SoC Amlogic S905Y4. На борту 2 ГБ ОЗУ, накопитель ёмкостью 8 ГБ и быстрый двухдиапазонный 2Т2R WiFi/BT модуль.
Медиапроигрыватель работает под управлением Google TV OS 11, имеет лицензии от Google и Netflix.
Realmi 4K легко переваривает медиаконтент в качестве 4К с HDR (HDR10, HDR10+), но не поддерживает Dolby Vision. Многоканальный звук выводит в DD+ и DTS. Из недостатков — нет autorfamerate.
Радует наличие обновлений от производителя. Довольно интересный и недорогой вариант.
Социальные сети
©2016-2022 Блог Евгения Левашова. Самое интересное и полезное из мира ИТ. Windows 10, Linux, Android и iOS. Обзоры программ и веб-сервисов. Статьи о мотивации и продуктивности.
Данный блог является личным дневником, содержащим частные мнения автора. В соответствии со статьей 29 Конституции РФ, каждый человек может иметь собственную точку зрения относительно его текстового, графического, аудио и видео наполнения, равно как и высказывать ее в любом формате. Блог не имеет лицензии Министерства культуры и массовых коммуникаций РФ и не является СМИ, а, следовательно, автор не гарантирует предоставления достоверной, не предвзятой и осмысленной информации. Сведения, содержащиеся в этом блоге не имеют никакого юридического смысла и не могут быть использованы в процессе судебного разбирательства. Автор блога не несёт ответственности за содержание комментариев к его записям.
В этом руководстве мы научимся использовать видео в Вебе, как это принято в 2019. Chrome и Firefox начали поддерживать новый кодек AV1 — для них видео можно сделать в два раза меньше.
Отдельно поговорим, как заменить GIF на видео в AV1 и H.264 — тогда его размер упадёт в 20-40 раз.
YouTube уже использует его в TestTube. Netflix заявил, что AV1 будет «их основным кодеком следующего поколения».
Мы в Злых Марсианах уже используем его на нашем сайте и на Ампллифере. В этой статье я поделюсь опытом внедрения AV1 и шаг-за-шагом расскажу, как вставить видео, чтобы оно работало во всех браузерах.
Mecool KM7
Переходим к тв-боксам с поддержкой AV1.
Mecool KM7 оснащен 2/16 или 4/64 ГБ ОЗУ/ПЗУ. Построен на всё том же Amlogic S905Y4. Кроме двухдиапазонного WiFi/BT модуля доступно подключение через RJ45 к Ethernet 100 Мбит/с.
К достоинствам KM7 можно отнести:
- поддержку воспроизведения 4K YouTube роликов, кодированных в AV1;
- не перегревающийся Amlogic S905Y4;
- стабильный Bluetooth 5.0 и неплохой как для 1T1R WiFI модуль.
- комплектный, программируемый Bluetooth/IR пульт ДУ;
К недостаткам можно отнести:
- не оптимизированную прошивку прошивку ATV11;
- отсутствие возможности записи на внешний накопитель;
- неправильную работу HDR;
- отсутствие autoframerate и Root доступа.
Рубрики
AV1 на 30% лучше, чем H.265
Помимо того, что AV1 не требует лицензионных отчислений и является открытым исходным кодом, он должен действительно предлагать преимущества по сравнению с уже установленными технологиями. Aomedia (хранители кодека AV1) утверждают, что предлагает сжатие на 30% лучше, чем H.265. Это означает, что он использует меньше данных, предлагая то же качество для видео 4K UHD.
Есть два важных показателя для любого видеокодека. Битрейт (то есть размер) и качество. Чем выше битрейт, тем больше закодированные файлы. Чем больше закодированные файлы, тем больше объем данных, которые необходимо передать в поток. С изменением битрейта меняется и качество. Проще говоря, если данных будет меньше, то точность и точность исходного материала снизится. Чем больше данных, тем больше шансов представить оригинал.
Видеокодеки, такие как AV1 (и H.264 / H.265), используют сжатие с потерями. Это означает, что закодированная версия не совпадает (пиксель за пикселем) с оригинальной. Хитрость заключается в том, чтобы закодировать видео таким образом, чтобы потери были незаметны для человеческого глаза. Есть много методов, чтобы сделать это, и это сложный предмет. Три из основных методов должны использовать постепенные изменения кадра, квантование и векторы движения.
AV1 разработан, чтобы быть без лицензионных платежей.
Когда вы делаете фотографию на своем смартфоне, есть вероятность, что она будет сохранена в формате JPEG (файл .jpg). JPEG – это формат сжатия изображений с потерями. Он работает с использованием техники, называемой квантованием. Основная идея заключается в том, что данный сегмент фотографии (8 × 8 пикселей) может быть представлен фиксированной последовательностью затененных рисунков (по одному для каждого цветового канала), наложенных друг на друга. Эти шаблоны генерируются с использованием дискретного косинусного преобразования (DCT). Используя 64 из этих шаблонов, можно представить блок 8 × 8, решив, сколько из каждого шаблона необходимо для получения аппроксимации исходного блока. Оказывается, может быть, только 20% шаблонов необходимы для убедительной имитации исходного блока. Это означает, что вместо сохранения 64 чисел (по одному на пиксель) изображению со сжатием с потерями может потребоваться только 12 чисел. 64 до 12,
Пример дискретных косинусных паттернов, используемых для сжатия с потерями
Количество затененных рисунков, преобразования, необходимые для их генерации, вес, заданный для каждого рисунка, количество выполненных округлений, являются переменными и изменяют качество и размер изображения. JPEG имеет один набор правил, H.264 другой набор, AV1 другой набор и так далее. Но основная идея та же самая. В результате каждый кадр в видео представляет собой представление с потерями исходного кадра. Сжатый и меньше, чем оригинал.
В-третьих, есть отслеживание движения. Если мы вернемся к нашей сцене, где два человека бросают мяч, то мяч перемещается по сцене. Для некоторых его перемещений он будет выглядеть точно так же, поэтому вместо того, чтобы отправлять те же данные снова и относительно мяча, было бы лучше просто заметить, что блок с мячом немного сместился. Векторы движения могут быть сложными, и нахождение этих векторов и построение дорожек могут занимать много времени во время кодирования, но не во время декодирования.
AV1 бесплатна и имеет открытый исходный код
Изобретать технологии, разрабатывать компоненты и проводить исследования дорого. Инженеры, материалы, здания – все это стоит денег. Для «традиционной» компании возврат инвестиций происходит от продаж. Если вы разрабатываете новый гаджет, и он продается миллионами, вы получаете деньги, которые были потрачены изначально. Это верно для физических продуктов, таких как смартфоны, но это также верно и для разработки программного обеспечения.
Игровая компания тратит деньги на разработку игры, платит инженерам и художникам по пути, а затем продает игру. Он может даже физически не существовать на картридже DVD / ROM / что-либо еще, это может быть цифровая загрузка. Однако продажи платят за его развитие. Но что произойдет, если вы разработаете новый алгоритм или технику для чего-то, скажем, для сжатия видео? Вы не можете предлагать алгоритм для цифровой загрузки, его будут покупать не потребители, а производители, которые хотят включить этот алгоритм в смартфоны, планшеты, ноутбуки, телевизоры и т.д.
Netflix попал в заголовки, когда заявил, что начал потоковую передачу AV1 некоторым зрителям Android.
Если изобретатель алгоритма может продать технику третьим сторонам, то один из бизнес-вариантов – взимать небольшую плату – изменение роялти за каждое устройство, поставляемое с алгоритмом. Все это кажется справедливым и справедливым. Однако система открыта для злоупотреблений. От недружественных переговоров о пошлинах, до патентных троллей, до судебных исков на миллион долларов история предприятий, основанных на роялти, длинна и полна неожиданных побед и потерь как для «плохих парней», так и для «хороших парней».
Как только технология становится повсеместной, происходит странная вещь: продукты не могут быть созданы без нее, но они не могут быть созданы с ее помощью, если не согласованы цены. Еще до того, как продукт достигнет первоначальной концепции, он уже обременен перспективой лицензионных отчислений. Это все равно что пытаться взимать с производителя продукта за создание гаджета, который использует электричество, а не количество использованного электричества, а только тот факт, что оно использует электричество.
Реакция против этого состоит в том, чтобы искать и развивать технологию, которая свободна от лицензионных платежей и свободна от кандалов патентов. Это цель кодека AV1.
Многие из современных и распространенных технологий потокового видео не являются бесплатными. Видео MPEG-2 (используется на DVD, спутниковом телевидении, цифровом телевещании и т.д. ), H.264 / AVC (используется на дисках Blu-ray и во многих службах потоковой передачи в Интернете) и H.265 / HEVC (рекомендуемый кодек для 8K) ТВ) все нагружены претензиями роялти и патентами. Иногда сборы отменяются, иногда нет. Например, у Panasonic более 1000 патентов, связанных с H.264, а у Samsung более 4000 патентов, связанных с H.265!
Кодек AV1 разработан, чтобы быть лицензионным платежом. У него много громких имен, поддерживающих его, а это значит, что юридический вызов против объединенного пула патентов и финансовой мощи Google, Adobe, Microsoft, Facebook, Netflix, Amazon и Cisco будет бесполезным. Однако это не помешало некоторым патентным троллям, таким как Сисвел, греметь своими цепями. На сегодняшний день на самом деле ничего не дошло до суда, но патентные тролли не легко сдаются.
Последние
Это все о битах
Наивысшая битва за видеокодер – поддерживать низкий битрейт и высокое качество. Поскольку кодирование видео прогрессировало на протяжении многих лет, целью каждого последующего поколения было снижение битрейта и поддержание того же уровня качества. В то же время наблюдается увеличение разрешающей способности дисплея для потребителей. DVD (NTSC) был 480p, Blu-ray был 1080p, и сегодня у нас есть 4K потоковых видео сервисов, и мы замедляем скорость до 8K. Высокое разрешение экрана также означает большее количество пикселей для представления, что означает, что для каждого кадра требуется больше данных.
«Битрейт» – это число единиц и нулей, используемых в секунду видеокодеком. В качестве отправной точки, практическое правило: чем выше битрейт, тем лучше качество. Какой битрейт вам нужен для хорошего качества, зависит от кодека. Но если вы используете низкий битрейт, качество изображения может быстро ухудшиться.
Когда файлы хранятся (на диске DVD, диске Blu-ray или на жестком диске), битрейт определяет размер файла. Для простоты мы будем игнорировать любые аудиодорожки и любую встроенную информацию внутри видеопотока. Если объем DVD составляет приблизительно 4,7 ГБ, а вы хотите сохранить фильм продолжительностью 2 часа (120 минут или 7200 секунд), то максимально возможная скорость передачи данных составит 5200 килобит в секунду или 5,2 Мбит / с.
Если вам нужно освежить в мегабитах против мегабайт, то у меня есть видео об этом: мегабит в секунду (Мбит / с) против мегабайт в секунду (МБ / с).
Для сравнения, видеоклип 4K прямо с моего смартфона Android (в H.264) использовал скорость 42 Мбит / с, примерно в 8 раз выше, но при записи с разрешением примерно в 25 раз больше пикселей на кадр. Глядя на эти очень грубые цифры, мы видим, что H.264 предлагает сжатие, по крайней мере, в 3 раза лучше, чем MPEG-2 Video. Один и тот же файл, закодированный в H.265 или AV1, будет использовать примерно 20 Мбит / с, что означает, что и кодек H.265, и кодек AV1 обеспечивают сжатие в два раза больше, чем H.264.
Наивысшая битва за видеокодер – поддерживать низкий битрейт и высокое качество.
Это очень приблизительные оценки доступных коэффициентов сжатия, потому что числа, которые я дал, подразумевают постоянную скорость передачи битов. Однако некоторые кодеки позволяют кодировать видео с переменным битрейтом, определяемым настройкой качества. Это означает, что битрейт меняется мгновенно, с предопределенным максимальным битрейтом, используемым, когда сцены сложные, и меньшим битрейтом, когда вещи менее загромождены. Именно тогда этот параметр качества определяет общий битрейт.
Существуют различные способы измерения качества. Вы можете посмотреть пиковое соотношение сигнал / шум, а также другую статистику. Плюс вы можете посмотреть на качество восприятия. Если у 20 человек одинаковые видеоклипы с разных кодеров, то какие из них будут оцениваться выше по качеству.
Вот откуда берутся на 30% лучшие требования к сжатию. Согласно различным исследованиям, видеопоток, закодированный в AV1, может использовать более низкую скорость передачи битов (на 30%) при достижении того же уровня качества. С личной, субъективной точки зрения это трудно проверить и одинаково трудно оспорить.
Выше приведен монтаж одного кадра из одного и того же видео, закодированного тремя различными способами. Вверху слева оригинальное видео. Рядом справа находится кодек AV1 с H.264 под ним и H.265 под оригинальным источником. Первоначальный источник был 4K. Это не идеальный метод для визуализации различий, но он должен помочь проиллюстрировать это.
Из-за уменьшения общего разрешения (это 1920 x 1080) изображения мне трудно заметить большую разницу между четырьмя изображениями, особенно без просмотра пикселов. Вот тот же тип монтажа, но с увеличенным изображением, поэтому мы можем немного разглядеть пиксель.
Ниже приведено сравнение кадра HEVC / H.265 с кадром AV1.
Пример HEVC H.265 при 22 Мбит / с Пример AV1 на 22 Мбит / с
Здесь я вижу, что исходное видео, вероятно, имеет лучшее качество, а H.264 – худшее (относительно) по сравнению с оригиналом. Я бы изо всех сил пытался объявить победителя между H.265 и AV1. В случае необходимости я бы сказал, что кодек AV1 лучше воспроизводит цвета на лепестках.
Одно из утверждений Google об использовании AVI в приложении Duo заключалось в том, что оно «улучшит качество и надежность видеовызова даже при подключениях с очень низкой пропускной способностью». Возвращаясь к нашему монтажу, на этот раз каждый кодировщик был настроен на 10 Мбит / с. Это совершенно несправедливо для H.264, поскольку он не претендует на то же качество на тех же битрейтах, что и H.265 / Av1, но это поможет нам увидеть. Кроме того, оригинал остается неизменным.
H.264 на скорости 10 Мбит / с явно худший из 3. Быстрый взгляд на H.265 и AV1 оставляет у меня ощущение, что они очень похожи. Если я смотрю пиксель, я вижу, что AV1 работает лучше с травой в верхнем левом углу кадра. Таким образом, AV1 – чемпион, но только по очкам, это не был нокаут.
Пример HEVC H.265 при 10 Мбит / с Пример AV1 на 10 Мбит / с
Бонус: как сконвертировать 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 от открытия видео на весь экран при клике на видео.
РЕКЛАМА И ДОНАТЫ
Mecool KM6 (Classic, Delux)
Mecool KM6 в вариантах Classic и Delux — популярные модели 2021 года на новом процессоре Amlogic S905X4 c поддержкой аппаратного декодирования современного кодека AV1.
Обе модели работают под управлением сертифицированной операционной системы Google Android TV.
У бюджетной версии Classic установлен 100 мегабитный LAN порт, MIMO 2x2 WiFi адаптер 2.4+ 5 ГГц и Bluetooth 4.2 .
Версия Delux оснащена оптическим выходом SPDIF, гигабитным LAN портом, Bluetooth 5.0 и поддержкой WiFi 6. В комплектах поставки обоих версий имеются Bluetooth пульты с встроенным микрофоном. К бюджетным устройствам Deluх не отнесешь.
Из достоинств обеих версий можно выделить:
- комплектный Bluetooth пульт с микрофоном
- сертифицированную систему Google ATV
- вывод многоканального звука;
- быстрые WiFi модули c поддержкой MIMO 2x2.
К недостаткам можно отнести отсутствие лицензии от Netflix.
Читайте также:
- Для перемещения одного или нескольких файлов можно использовать предложение with move
- Driverupdul exe не удается продолжить выполнение кода поскольку система не обнаружила aswcmnbs dll
- Хорошие тонеры для лица в магнит косметик
- Файл ресурса поврежден или версии не совпадают pubg
- Такском не работает эцп