Контейнеры и кодеки — и почему скорость конвертации так различается
Одна и та же «конвертация в MP4» может занять три секунды или сорок минут и не потерять ничего или потерять заметное поколение качества. Одно различие объясняет и то и другое и позволяет предсказать, что вас ждёт.
Проверено
В чём различие
Контейнер — это коробка. MP4, MKV, MOV, WebM и AVI — контейнеры: они определяют, как части расположены в файле, как плеер находит начало каждой из них, как записываются временные метки и какие дополнения допустимы — дорожки субтитров, главы, несколько языков, обложка.
Кодек — это способ, которым сжаты изображение и звук внутри. H.264, H.265, VP9, AV1 для видео; AAC, MP3, Opus, Vorbis, AC-3 для звука.
Расширение файла называет только контейнер, и отсюда почти вся путаница. У двух файлов .mkv внутри может не быть ничего общего, а .mp4 и .mkv с одним и тем же видео H.264 — на том уровне, который важен, одно и то же видео в разных коробках. Расширение почти ничего не говорит о том, насколько сложной будет конвертация.
Ремукс или перекодирование: вот и весь вопрос
При конвертации видео происходит одно из двух совершенно разных действий.
Ремукс переносит существующие сжатые потоки в новый контейнер без декодирования. Ничего не пересжимается, поэтому изображение бит в бит то же, размер файла примерно тот же, а двухчасовой фильм обрабатывается за секунды. Это возможно всегда, когда кодеки внутри принимаются целевым контейнером.
Перекодирование декодирует каждый кадр и кодирует его заново. Оно занимает время, пропорциональное длине видео, и стоит одного поколения качества: новый кодировщик не может отличить артефакты старого от настоящих деталей и тратит биты на их сохранение. Оно неизбежно, когда кодеки несовместимы с целевым форматом.
Если конвертация закончилась почти мгновенно, это хороший исход. Иногда люди думают, что что-то пошло не так, раз всё было слишком быстро. На самом деле наоборот.
Какая конвертация чем является
**MKV в MP4: обычно ремукс.** Большинство MKV содержит H.264 с AAC — ровно то, что нужно MP4. Секунды, ничего не теряется.
**MOV в MP4: обычно ремукс, и это едва ли вообще конвертация.** Спецификация MP4 построена на формате файлов QuickTime, поэтому внутреннее устройство у них общее. Файл .mov с iPhone содержит H.264 или H.265 и переносится напрямую. Исключение — профессиональные записи в ProRes или DNxHD: их нужно перекодировать, и они сильно уменьшатся.
**WEBM в MP4: всегда перекодирование. WebM содержит VP8, VP9 или AV1 с Vorbis или Opus, и ни один из них не помещается в MP4 так, чтобы это надёжно воспроизводилось. Рассчитывайте на реальное время и на то, что файл станет больше**, потому что новые кодеки эффективнее H.264.
**AVI в MP4: всегда перекодирование. AVI появился в 1992 году и содержит DivX, Xvid или Motion JPEG. Здесь файл обычно становится меньше**, потому что H.264 примерно вдвое эффективнее того, что внутри, — настоящий выигрыш за одно поколение потерь.
Что может хранить один контейнер и не может другой
Это вторая половина того, что теряется при конвертации, и к качеству она отношения не имеет. MKV — самый вместительный из распространённых контейнеров: несколько звуковых дорожек на разных языках, целая стопка дорожек субтитров, метки глав, обложка и даже файлы шрифтов для оформленных субтитров. MP4 на практике спокойно несёт одну видео- и одну аудиодорожку, а с остальным справляется неуклюже.
Поэтому при конвертации MKV в MP4 обычно сохраняется первая дорожка каждого типа, а остальные остаются позади — так люди и получают фильм не на том языке или без субтитров, ради которых всё конвертировали. Субтитры особенно часто не переживают конвертацию: у SRT и оформленного формата ASS, который используют фансаберы, нет полноценного места в MP4. Сначала извлеките их и храните отдельным файлом .srt рядом с видео — его загрузит любой плеер и телевизор.
MOV несёт таймкод и метаданные камеры, по которым монтажёр синхронизирует дубли; они тоже не переносятся. А ProRes может содержать альфа-канал для прозрачности, чего H.264 в MP4 не умеет, — так что клип с титром или логотипом превращается в совершенно корректное видео с чёрным фоном там, где была прозрачность, и предупредят вас об этом только ваши собственные глаза.
Практические выводы
Проверьте, нужна ли конвертация вообще. VLC, MPV и большинство современных смарт-телевизоров воспроизводят MKV и WebM напрямую. Конвертировать файл, который ваш плеер уже понимает, — значит впустую потратить время, место и качество. Настоящие причины — устройство Apple, старая игровая приставка, видеоредактор, который не принимает формат, или мессенджер.
Обрезка использует ту же идею. Инструмент Обрезать видео может копировать закодированное видео, а не перекодировать его, — это мгновенно и без потерь, но разрез должен попасть на ключевой кадр, а они идут с интервалом от одной до десяти секунд. Вот почему скопированный фрагмент начинается чуть раньше, а точная обрезка занимает больше времени и стоит качества: она перекодирует начальный участок, чтобы попасть на выбранный кадр.
Если перекодировать необходимо, делайте это один раз и хорошо. Каждое перекодирование необратимо, поэтому конвертируйте из лучшего исходника, который у вас есть, с настройкой качества, при которой второе поколение незаметно, и храните оригинал, пока не проверите результат.
Частые вопросы
Как узнать, какой кодек в моём файле?
VLC показывает это в меню «Инструменты» → «Информация о кодеке», а MediaInfo — бесплатная программа, которая только этим и занимается. Проверить стоит до долгой конвертации: если кодек уже совместим с MP4, вы собираетесь потратить час на то, что могло занять секунды.
MKV лучше MP4?
Как контейнер — да: он вмещает больше и меньше ограничивает. MP4 выигрывает по совместимости, а именно ради неё обычно и конвертируют. Ни тот ни другой никак не влияет на качество изображения — оно целиком зависит от кодека и его настроек.
Почему мой WebM стал больше в виде MP4?
Потому что VP9 и AV1 эффективнее H.264, и отказ от них стоит ровно того, что они экономили. Вы покупаете совместимость, а не размер: MP4 воспроизводится практически везде, а WebM — нет.
Можно ли конвертировать без потери качества?
Да, когда кодеки позволяют ремукс — MKV в MP4 и MOV в MP4 обычно позволяют. Когда перекодирование неизбежно, высокая настройка качества делает потери практически незаметными, но буквально нулевыми они не бывают никогда.
Почему иногда помогает простая смена расширения файла?
Потому что иногда контейнер внутри действительно тот же — например, .f4v — это MP4 под другим именем. Во всех остальных случаях это не работает, а переименованный файл, который не открывается, сбивает с толку сильнее, чем честно отклонённый. Попробовать можно, но полагаться на это не стоит.