MP4 или WebM: что экспортировать?
Сайту нужен MP4, а у меня файл WebM. Это конвертация или достаточно переименовать?
На самом деле это два вопроса
MP4 и WebM — это контейнеры. Контейнер устроен как система хранения: он держит одну или несколько дорожек, фиксирует их тайминг, хранит индекс, позволяющий проигрывателю перематывать, и несёт метаданные. Сам он ничего не сжимает. Сжатием занимается кодек, а закодированный битовый поток — это как раз то, что контейнер переносит.
Значит, «MP4 или WebM» — вопрос об упаковке, а «H.264, VP9 или AV1» — вопрос о сжатии. Именно из-за путаницы между ними люди перекодируют файлы, которым нужна была всего лишь переупаковка, и без всякой пользы теряют поколение качества.
Что обычно лежит внутри каждого
| Свойство | MP4 | WebM |
|---|---|---|
| Базовый формат | Базовый медиаформат ISO (ISO/IEC 14496-12) | Профиль Matroska |
| Обычные видеокодеки | H.264, HEVC, AV1 | VP8, VP9, AV1 |
| Обычные аудиокодеки | AAC, иногда AC-3 или FLAC | Opus, Vorbis |
| Характер лицензирования | Запатентованные кодеки — обычное дело | Спроектирован вокруг кодеков без лицензионных отчислений |
| Где он безопасный выбор по умолчанию | Телефоны, настольные проигрыватели, монтажные программы, социальные платформы | Веб, особенно с VP9 или AV1 |
Ни один из этих списков не правило. Контейнер по большей части безразличен к кодеку, и оба способны нести AV1. Различается другое — то, что готова принять программа на другом конце.
Где каждый из них реально воспроизводится
MP4 с H.264 и AAC внутри — самое близкое к универсальному видеофайлу, что вообще существует. Он играет на телефонах, на телевизорах, в монтажных программах, в мессенджерах, и именно его обычно имеют в виду формы загрузки, когда пишут «видео». Из-за этого господства аппаратные декодеры H.264 стоят практически в каждом устройстве, выпущенном за последние пятнадцать лет, а это важно и для совместимости, и для времени работы от батареи.
WebM создавался для веба, с кодеками, за потоковую передачу которых не нужно платить отчисления. Браузеры справляются с ним хорошо. С небраузерными программами надёжности меньше: часть монтажных инструментов, часть телевизоров и часть галерей в телефонах его не откроют, а коллега, дважды щёлкнувший по файлу, может не увидеть вообще ничего.
Ремукс или перекодирование
Если кодек внутри вашего файла получателя уже устраивает, смена контейнера — это ремукс: закодированные кадры переносятся без изменений, переписывается только упаковка. Это быстро, это без потерь, и картинка остаётся побитово той же. Если кодек не устраивает — скажем, VP9 в MP4 для проигрывателя, который читает только H.264, — кадры придётся декодировать и закодировать заново, а это отнимает реальное время и стоит поколения качества.
Поэтому полезный первый вопрос — «какой кодек внутри», а не «какое у файла расширение». Видеоинструменты FileSlimmer сначала осматривают дорожки и делают ремукс вместо перекодирования всякий раз, когда получателя это устраивает.
Не забудьте про звуковую дорожку
Смена контейнера, не учитывающая звук, даёт на неподходящем проигрывателе немой файл. MP4 по традиции несёт AAC, WebM — Opus или Vorbis. Положить Opus в MP4 спецификация разрешает, но огромное количество программ в реальной жизни этого не поддерживает, поэтому честная конвертация в MP4 обычно означает и перекодирование звука в AAC.
Если у ролика звука нет вовсе, отразите это явно в том, что экспортируете. Некоторые проигрыватели встают, когда ждут дорожку, которой нет.
Короткий список для принятия решения
- Отправляете файл человеку, на платформу или в форму загрузки: MP4 с H.264 и AAC.
- Раздаёте файл сами, со своих страниц, в браузеры: WebM с VP9 или AV1 в любом из контейнеров, с запасным MP4, если аудитория широкая.
- Собираетесь монтировать позже: храните оригинал наивысшего качества, какой у вас есть, в том контейнере, в котором он пришёл.
- Не подходит только контейнер, а кодеки уже те, что нужно: делайте ремукс, а не перекодирование.
- Не уверены, что внутри: проверьте кодеки до выбора, потому что от ответа зависит, обойдётся ли это в секунды или в час.
Ограничения, о которых стоит знать
Кодирование видео в браузере зависит от того, что предоставляет устройство. Аппаратные кодировщики привязаны к форматам: машина может быстро кодировать H.264 и медленно VP9 или вовсе отказаться от какого-то кодека. Поддержка различается и между браузерами на одной машине, и между браузером и тем же самым браузером на телефоне. Конвертация, которая на ноутбуке занимает секунды, на телефоне, который заодно следит за собственной температурой, может тянуться гораздо дольше.
Выбор контейнера не спасёт файл, который велик из-за своего содержимого. Длинный ролик в высоком разрешении и с обилием движения велик в любом контейнере. Это решают разрешение, битрейт и длительность, и никакая переупаковка их не меняет.
Инструменты для этого
Источники
- ISO/IEC 14496-12 — ISO base media file format
- The WebM Project — container guidelines
- ITU-T H.264 — Advanced Video Coding
- MDN — Media container formats and codec support