Media Converter

Инструменты

Частые вопросы

Загрузка

Как обрезать, разделить и склеить видео без перекодирования

Обновлено:

Кажется, что отрезать несколько секунд от видео можно мгновенно и без потерь, и иногда так и есть. А иногда инструмент декодирует и заново сжимает весь клип, что занимает больше времени и стоит немного качества. Вся разница — в двух техниках, копировании потоков и перекодировании, и в том, как сжатое видео строится из ключевых кадров.

В этом руководстве объясняются обе техники, показывается, когда обрезка без потерь возможна, и честно говорится, какие из наших инструментов копируют потоки, а какие перекодируют.

Копирование потоков и перекодирование

Копирование потоков (его также называют ремуксингом, перепаковкой или passthrough) берёт уже сжатые пакеты видео и звука и записывает их в новый файл, не декодируя. Это очень быстро, потому что сжатия не происходит, и без потерь, потому что пакеты побитово идентичны оригиналу. Ограничение в том, что можно только оставлять или отбрасывать целые пакеты; изменить кодек, разрешение, битрейт или ориентацию пикселей нельзя.

Перекодирование декодирует видео в отдельные кадры и сжимает их заново. Оно медленнее, и при кодеках с потерями каждое перекодирование отбрасывает ещё немного деталей, зато может начинаться и заканчиваться на любом кадре и способно изменить в видео что угодно.

Почему обрезка без потерь привязывается к ключевым кадрам

Современные кодеки хранят не каждый кадр как полное изображение. Ключевой кадр (I-кадр) — это полное изображение; кадры после него в основном хранят только изменения, ссылаясь на предыдущие кадры. Группа кадров, начинающаяся с ключевого кадра, называется GOP, и в видео с телефона и камеры ключевой кадр обычно появляется раз в одну-несколько секунд.

Кадр из середины GOP нельзя показать без кадров, от которых он зависит. Поэтому обрезка с копированием потоков может чисто начинаться только с ключевого кадра. Инструменты, которые режут без потерь, либо сдвигают вашу точку начала к ближайшему ключевому кадру — поэтому обрезка может оказаться на секунду-другую в стороне от заданного места, — либо включают предшествующие кадры и скрывают их, что некоторые плееры игнорируют. С концом клипа проще: остановиться можно после любого кадра.

Некоторые редакторы используют умный рендеринг (smart rendering): они перекодируют только несколько кадров между точкой обрезки и следующим ключевым кадром, а остальное копируют потоком. Это даёт точность до кадра практически без потери качества, но требует тщательного согласования настроек кодировщика с оригиналом.

Склейка без перекодирования

Склейка файлов копированием потоков работает, только если у всех клипов одинаковые кодек, разрешение, частота кадров, формат пикселей и формат звука — например, когда несколько клипов записаны подряд на одну и ту же камеру. Если что-то отличается — скажем, клип с телефона склеивается с записью экрана, — части приходится перекодировать в общий формат, и инструмент должен решить, что делать с разными размерами; обычно он добавляет чёрные полосы.

Что делают наши инструменты

Все они работают в вашем браузере, поэтому файл никуда не загружается. Вот как каждый из них обращается с перекодированием на основном движке, который использует встроенную в браузер поддержку WebCodecs. Если браузер не может обработать конкретный файл таким способом, инструменты переходят на запасной вариант — сборку ffmpeg на WebAssembly, которая перекодирует видео.

  • Обрезка видео, режим «Обрезать»: если оставляемая часть начинается в самом начале видео, а выходной формат поддерживает исходные кодеки, видео и звук копируются потоком. Если оставляемая часть начинается позже, видео перекодируется — благодаря этому обрезка точна до кадра, а не привязана к ключевому кадру; звук тоже перекодируется.
  • «Обрезка видео», режим «Вырезать» (удаление фрагмента из середины): обе оставшиеся части перекодируются с одинаковыми настройками, а затем соединяются без повторного перекодирования. Если удаляемый фрагмент касается начала или конца, всё работает как обычная обрезка.
  • Разделение видео: каждая часть создаётся как отдельная обрезка, поэтому первую часть можно скопировать потоком, а все последующие перекодируются. Делить можно на заданное число частей, по длительности или в своих точках, с выводом в MP4, MOV, MKV или WebM.
  • Склейка: инструмент «Объединение видео» открывает видеоредактор, где вы расставляете клипы на таймлайне. При экспорте всегда создаётся новое видео с выбранными вами разрешением, частотой кадров и битрейтом, поэтому можно объединять клипы разных размеров и с разными кодеками.
  • Поворот видео: в классическом инструменте для поворота поворот MP4 или MOV, кодек которого поддерживается этим контейнером, выполняется без перекодирования — с помощью флага поворота, который считывает плеер. Отражение, поворот с выводом в MKV или WebM и любой поворот, выполненный ИИ-ассистентом, перекодируют пиксели.

Как сохранить качество, если перекодирования не избежать

Однократное перекодирование с разумным битрейтом очень трудно заметить. Проблемы с качеством возникают из-за повторения процесса или слишком сильного снижения битрейта.

  • Режьте исходный файл, а не экспорт экспорта.
  • По возможности выполняйте всю обрезку за один проход, а не обрезайте, потом делите, потом снова обрезайте.
  • Сохраняйте выходное разрешение таким же, как у исходника, если только вам не нужен ещё и файл поменьше.
  • Выбирайте тот же контейнер, что и у исходника, если другой не нужен: так у инструмента больше шансов скопировать потоки там, где это возможно.

Когда нужна полностью беспотерьная обрезка по ключевым кадрам

Если у вас очень длинная запись и нужно отрезать начало, не трогая остальное, правильный выбор — программа для компьютера, которая работает исключительно копированием потоков. Для этого создано приложение с открытым исходным кодом LosslessCut, а в командной строке ffmpeg то же самое делается с параметром копирования, например: ffmpeg -ss 00:01:00 -i input.mp4 -t 30 -c copy output.mp4. Учтите, что начало сдвинется к ближайшему ключевому кадру перед указанным временем.

Для повседневных клипов, где точность до кадра важнее, чем избежать одного перекодирования, инструментом для обрезки видео пользоваться быстрее, и его не нужно устанавливать. Чтобы заодно уменьшить размер, завершите обработку в компрессоре видео.

Инструменты из этого руководства

Частые вопросы

01

Снижает ли обрезка качество видео?

Нет, если инструмент использует копирование потоков, которое не вносит потерь. Если же он перекодирует, появляется небольшая потеря, которую при разумном битрейте очень трудно заметить, — в обмен на обрезку с точностью до кадра.

02

Почему обрезка без потерь начинается чуть раньше?

Обрезка с копированием потоков может начинаться только с ключевого кадра, поэтому инструмент сдвигает начало назад к ближайшему ключевому кадру перед выбранной вами точкой.

03

Можно ли склеить видео с разным разрешением?

Да, но их придётся перекодировать в общий формат. В видеоредакторе при экспорте каждый клип отрисовывается в выбранном вами разрешении.