MP4 чи WebM: що краще експортувати?
Сайт хоче MP4, а в мене WebM. Це конвертація чи просто перейменування?
Це запитання насправді складається з двох
MP4 і WebM — це контейнери. Контейнер — це система зберігання: він тримає одну чи кілька доріжок, записує їхній тайминг, зберігає індекс, завдяки якому плеєр уміє перемотувати, і несе метадані. Він нічого не стискає. Стисненням займається кодек, і саме закодований бітстрім контейнер у собі несе.
Тож «MP4 чи WebM» — це питання пакування, а «H.264, VP9 чи AV1» — питання стиснення. Плутанина між ними — причина того, що люди перекодовують файли, яким потрібне було лише перепакування, і задарма втрачають одне покоління якості.
Що зазвичай лежить усередині кожного
| Властивість | MP4 | WebM |
|---|---|---|
| Базовий формат | ISO base media file format (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