Видеорезак

Видеорезак — обрезка, разрезание, разделение и склейка видео онлайн — вырезайте ненужные части, делите клип на несколько фрагментов или объединяйте несколько видеофайлов в один. Вся обработка выполняется локально в вашем браузере, поэтому ваши файлы никогда не загружаются ни на один сервер, а ваша приватность полностью защищена.
Поддерживаемый вход: видео, использующие открытые кодеки без лицензионных отчислений, такие как VP8/VP9/AV1/MPEG-4/FFV1 (контейнеры WebM, MKV, MP4, MOV, AVI). Формат и кодеки вывода выбираются ниже; каждый результат пережимается локально в вашем браузере.
При первом использовании в текущий браузер загружается движок обработки видео примерно на 30 МБ. Он кэшируется и затем используется повторно, поэтому, пожалуйста, наберитесь терпения.
🎥
Нажмите, чтобы выбрать, или перетащите видеофайл
Поддерживаются WebM, MKV, MP4, MOV, AVI и другие распространённые форматы; рекомендуется до 500 МБ
Обрезать / вырезать: оставить только часть видео между временем начала и окончания (формат ЧЧ:ММ:СС или просто секунды, например 00:00:05 или 5). Выбранный фрагмент пережимается в новый файл.
Разделить: разбить видео на несколько частей. Либо перечислите временные точки (через запятую, например 00:00:10,00:00:20), либо разбейте на равное число частей. Каждая часть скачивается отдельно.
Склеить: добавьте два или более видеофайлов, расставьте их в порядке и объедините в один файл. Все входные файлы пережимаются с одинаковыми настройками, так что несовпадающие кодеки обрабатываются, но для лучшего результата держите похожие разрешение и настройки аудио.
Что такое ключевые кадры и GOP? Почему резать видео сложнее, чем кажется

Резать видео кажется удалением куска байтов, но сжатое видео не хранит полных картинок. Сжатый поток — это цепочка, которая начинается с полностью самостоятельного кадра (ключевого кадра, I-кадра), за которым следуют десятки кадров, хранящих лишь то, что изменилось с предыдущего. Вы не можете декодировать кадр 47, пока не декодировали кадры с 1 по 46. Эта цепочка зависимостей — один ключевой кадр плюс все кадры, которые на него опираются, — называется GOP (Group of Pictures, группа кадров). Поэтому резка — это переговоры со структурой GOP: резать по ключевому кадру можно копированием байтов; резать в любом другом месте — значит что-то пересобирать.

Пять фактов, на которые опирается остальная часть страницы:
• I-кадр (ключевой кадр) = полная картинка, декодируется сам по себе; P-кадр = изменения относительно предыдущего кадра; B-кадр = изменения, интерполированные между двумя кадрами
• GOP = один ключевой кадр и зависящие от него кадры; типичная длина: 1–2 секунды (при 30 кадрах/с это 30–60 кадров)
• резка по ключевому кадру = копирование существующих GOP, мгновенно и без потерь, но точка среза прилипает к ближайшему ключевому кадру (до длины одного GOP отклонения)
• резка с точностью до кадра = ровно тот кадр, который вы выбрали, но граничный GOP нужно пережать заново
• размер следует за битрейтом: клип длиной 60 секунд при 12 Мбит/с занимает 12×60/8 = 90 МБ, что бы ни было на картинке
I-, P- и B-кадры

I-кадр («intra») — полная JPEG-подобная картина этого момента; он большой, но ни в чём не нуждается. P-кадр («predicted») хранит лишь разницу с предыдущим кадром — неподвижный кадр камеры делает P-кадры почти бесплатными, поэтому видео с говорящей головой так хорошо сжимается. B-кадр («bidirectional») предсказывается по и предыдущему, и следующему кадру, улавливая объекты, которые появляются и снова исчезают; он самый дешёвый для хранения, но самый трудный для редактирования, потому что порядок декодирования больше не совпадает с порядком показа. Редакторы скрывают эту сложность от пользователя; формат файла — нет.

Почему резка по ключевому кадру мгновенна и без потерь

Резка по ключевому кадру выбирает целые GOP и копирует их сжатые байты в новый контейнер — без декодирования и пережатия, за время примерно записи файла. Цена — точность: запрошенная точка входа может попасть только туда, где реально есть ключевой кадр. При GOP длиной 2 секунды при 30 кадрах/с (60 кадров на GOP) ближайший ключевой кадр может быть на расстоянии до 59 кадров, поэтому клип может начаться заметно раньше или позже отмеченного. Стриминговые сервисы кодируют с интервалами ключевых кадров 1–2 с именно для того, чтобы перемотка оставалась отзывчивой; видеозапись с камер наблюдения с GOP по 10 секунд печально известна «прыжками» при перемотке.

Почему резка с точностью до кадра требует пережатия

Допустим, идеальный начальный кадр — P-кадр посреди GOP. Его сжатые байты говорят «то же, что и предыдущий кадр, за исключением…» — бесполезно без кадров перед ним. Чтобы сделать его самостоятельным, резак должен декодировать весь GOP до этого кадра, превратить выбранный вами кадр в новый ключевой и пережать его (и всё, что идёт после, до следующего исходного ключевого кадра). Эту цену платит только граничный GOP: остальная часть клипа всё ещё копируется побайтно. Поэтому резка с точностью до кадра медленнее, но лишь немного теряет качество — один GOP получает второй проход сжатия, остальное не трогается.

Распространённые заблуждения
  • «Резка просто удаляет участок файла». Почти ни один кадр в сжатом потоке не существует сам по себе; каждую точку среза сначала нужно согласовать со структурой GOP.
  • «Каждая резка пережимает и теряет качество». Резка по ключевым кадрам никогда не пережимает. Даже резка с точностью до кадра пережимает только один граничный GOP; всё, скопированное после него, побитно идентично.
  • «Точка среза — ровно там, куда я перетащил маркер». В режиме ключевых кадров она прилипает к ближайшему ключевому кадру; только режим с точностью до кадра соблюдает точный кадр — и это выбор режима, а не ошибка.

Связанные инструменты: Видео в MP4 — основы контейнера и кодека, Извлечение кадров из видео для вытаскивания точных кадров как изображений, и Добавить/извлечь субтитры для различия мягких и вшитых субтитров.