Контейнеры, кодеки и когда конвертация ничего не стоит
Расширение называет коробку, а не содержимое. Файлы .mp4, .mkv, .mov и .webm — это контейнеры: в них лежат дорожки, временные метки и служебные данные. Чем на самом деле является изображение — и что должен уметь декодировать каждый плеер, — определяет кодек внутри: H.264, HEVC, VP9 или AV1 в современных файлах, DivX, Xvid, Sorenson Spark или VP6 в старых. Два файла с одинаковым расширением могут оказаться совершенно разными задачами.
Поэтому «конвертировать в MP4» иногда занимает секунды, а иногда час. Если кодек внутри может жить в MP4, закодированное видео копируется байт в байт и пересобирается только коробка: двухчасовой MKV или MOV с H.264 конвертируется за секунды, и картинка идентична, потому что ничего не декодировалось. Если кодек не может жить в MP4 или может, но его почти ничто не воспроизводит, видео приходится декодировать и кодировать заново — DivX и Xvid в AVI, VP8 и VP9 в WEBM, Sorenson Spark и VP6 в старом FLV. Это настоящее перекодирование, и оно стоит времени и немного качества. Каждый инструмент сообщает, каким путём пошёл.
Каждое перекодирование — это новый проход с потерями, и они накапливаются. Ролик, прошедший через три конвертера, сжимали трижды, и никакие настройки не вернут то, что отбросили предыдущие проходы. Если есть выбор, делайте всю работу за один шаг, а не конвертируйте, потом сжимайте, потом снова конвертируйте.
Обрезка точна до кадра, только если видео перекодируется, — так устроено сжатое видео, это не недостаток инструмента. Большинство кадров описывают только то, что изменилось с предыдущего кадра, поэтому скопированный фрагмент может начинаться только с ключевого кадра — а в большинстве файлов они идут через секунду-две. «Обрезать видео» сообщает, какое время реально использовано, а включённая «Точная обрезка» перекодирует начало, чтобы оно пришлось ровно туда, куда вы указали. По той же причине «Повернуть видео» мгновенно работает с MP4 и MOV: в этих форматах есть флаг поворота, так что поворот ролика переписывает несколько байтов и не трогает пиксели. В AVI, WMV и MPEG такого флага нет, поэтому поворот впечатывается в изображение, и файл возвращается в формате MP4.
MP4 — более бедная коробка, чем MKV, и именно здесь файлы что-то теряют. MKV создавался для множества дорожек: нескольких языков, субтитров, глав, вложенных шрифтов и обложки. MP4, который воспроизводится везде, содержит одну видеодорожку и одну звуковую. Поэтому конвертированный файл сохраняет основную картинку и звук, а остальное оставляет, и вам сообщают, что было отброшено, а не оставляют выяснять это потом. Звук Dolby Digital и DTS — ещё одна частая потеря: здесь он конвертируется в AAC, потому что иначе получится файл, который на телевизоре воспроизводится без звука.
Когда браузер действительно не подходит
Эти инструменты используют видеооборудование, которое уже есть в вашем устройстве, — тот же чип, что работает при видеозвонке. Поэтому они намного быстрее большинства браузерных инструментов, но на этом хорошие новости заканчиваются. Мы предпочитаем назвать ограничения здесь, а не заставлять вас обнаруживать их посреди работы.
На выходе только H.264 и AAC. Здесь ничто не кодирует в HEVC, AV1 или VP9, потому что браузеры не предоставляют эти кодировщики. H.264 — самый совместимый кодек из существующих и наименее эффективный из современных, поэтому всё, что перекодировано здесь, больше, чем то же качество из x265 или SVT-AV1. Если вы оптимизируете именно размер файла, HandBrake и ffmpeg бесплатны и легко справятся лучше.
Настроек сжатия три, а не число. «Слабое», «Сбалансированное» и «Сильное», плюс по желанию уменьшение до 1080p или 720p. Ни значения CRF, ни двухпроходного кодирования, ни тонкой настройки кодировщика, ни возможности задать точный размер файла. И фильтров нет совсем: нет устранения чересстрочности, так что чересстрочный AVI сохраняет «гребёнку»; нет шумоподавления, цветокоррекции, кадрирования, вшитых субтитров, поворота на произвольный угол, а при объединении — плавных переходов и титров. HDR преобразуется в стандартный диапазон, поэтому яркий HDR-ролик выходит более плоским, чем был.
Скорость и предел задаёт ваше устройство. Результат записывается в собственное хранилище браузера по мере создания, а не держится в памяти, поэтому длина ограничена в основном свободным местом на диске — но настоящее перекодирование идёт в несколько раз быстрее реального времени на современном ноутбуке и примерно в реальном времени на телефоне, а телефон нагреется и сдастся на длинном файле в 4K. Копирование — переупаковка, отключение звука, простая обрезка, поворот флагом — занимает секунды при любой длине, потому что ничего не декодируется.
И работает это, когда человек нажимает кнопку, с одним файлом. Конвертировать четыреста роликов по расписанию — это цикл в командной оболочке вокруг ffmpeg, который бесплатен и справится с этим лучше, чем когда-либо сможет веб-страница.
Как выбрать между похожими инструментами
MP4 в MP3 или Извлечь звук из видео. Начинают одинаково, а заканчивают по-разному. «MP4 в MP3» всегда даёт MP3 с выбранным вами битрейтом. «Извлечь звук из видео» позволяет выбрать MP3, M4A или WAV — или сохранить звук ровно в том виде, в каком его хранило видео, скопировав без перекодирования: это идеальное извлечение за секунды. Берите «Извлечь звук из видео», если собираетесь редактировать звук, и «MP4 в MP3», если нужно что-то, что заиграет в машине.
Извлечь звук из видео или Убрать звук из видео. «Извлечь звук из видео» вынимает звук в отдельный файл и не трогает видео. «Убрать звук из видео» удаляет звуковую дорожку из видео и оставляет вам картинку. Это две половины одного разделения, и если запустить оба, вы получите обе — без потерь, потому что ни один не перекодирует современный файл.
MKV в MP4 или Сжать видео. «MKV в MP4» меняет коробку и оставляет файл примерно того же размера; это не способ уменьшить фильм. «Сжать видео» меняет сами данные — а только это и делает файл меньше, — и для этого перекодирует. Если проблема в том, что телевизор не воспроизводит файл, конвертируйте. Если в том, что файл не влезает в письмо, сжимайте — и заодно уменьшите разрешение, потому что вдвое меньшая высота экономит гораздо больше любой настройки качества.
Обрезать видео или Видео в GIF. Оба вырезают отрезок из ролика. «Обрезать видео» даёт видео — обычно в исходном формате и обычно без перекодирования. «Видео в GIF» даёт беззвучную зацикленную картинку в формате 1989 года: 256 цветов на кадр, каждый кадр хранится целиком, никакого межкадрового сжатия — поэтому три секунды шириной 480 пикселей весят мегабайт и больше. Используйте его для чата или трекера задач, а «Обрезать видео» — для всего, что длиннее секунд десяти.