Как объединять и склеивать видео с помощью FFmpeg (руководство 2026)
Полное руководство по объединению и склейке нескольких видеофайлов с помощью FFmpeg. Рассматриваются методы concat demuxer, filter, protocol, а также бесплатная альтернатива в один клик.
Есть несколько видеоклипов, которые нужно объединить в один файл? FFmpeg предлагает несколько способов конкатенации видео — но правильный метод зависит от того, имеют ли ваши клипы одинаковый формат, кодек и разрешение.
Это руководство охватывает все три подхода с точными командами. А для тех, кто предпочитает не разбираться с несовместимостью кодеков в терминале, в конце есть бесплатная альтернатива с перетаскиванием.
Предварительные требования: установка FFmpeg

macOS:
brew install ffmpeg
Ubuntu/Debian:
sudo apt update && sudo apt install ffmpeg
Windows:
Скачайте с ffmpeg.org, распакуйте и добавьте bin в PATH.
Метод 1: Concat Demuxer (одинаковый формат — самый быстрый)
Это самый быстрый и простой метод. Он работает, когда все видео имеют одинаковый кодек, разрешение и частоту кадров.
Шаг 1: Создайте список файлов
Создайте текстовый файл files.txt:
file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'
Шаг 2: Выполните команду concat
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
-f concat— использовать concat demuxer-safe 0— разрешить абсолютные/относительные пути-c copy— без перекодирования (мгновенно)
Автоматическое создание списка файлов
Linux/macOS:
for f in *.mp4; do echo "file '$f'" >> files.txt; done
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
Windows (PowerShell):
Get-ChildItem *.mp4 | ForEach-Object { "file '$($_.Name)'" } | Out-File -Encoding ascii files.txt
ffmpeg -f concat -safe 0 -i files.txt -c copy output.mp4
Метод 2: Concat Filter (разные форматы — максимальная гибкость)
Когда клипы имеют разные кодеки, разрешения или частоту кадров, необходим concat filter. Он перекодирует всё для соответствия.
Два видео:
ffmpeg -i clip1.mp4 -i clip2.mov \
-filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
Три видео:
ffmpeg -i clip1.mp4 -i clip2.mov -i clip3.avi \
-filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
n=3— количество входных сегментовv=1— один выходной видеопотокa=1— один выходной аудиопоток
Нормализация разрешения перед конкатенацией
Если клипы имеют разное разрешение, сначала масштабируйте их:
ffmpeg -i clip1.mp4 -i clip2.mp4 \
-filter_complex \
"[0:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2[v0]; \
[1:v]scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2[v1]; \
[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
Метод 3: Concat Protocol (только MPEG-TS)
Для транспортных потоков MPEG можно использовать протокол concat напрямую:
# Сначала конвертируйте в MPEG-TS
ffmpeg -i clip1.mp4 -c copy -bsf:v h264_mp4toannexb clip1.ts
ffmpeg -i clip2.mp4 -c copy -bsf:v h264_mp4toannexb clip2.ts
# Затем объедините
ffmpeg -i "concat:clip1.ts|clip2.ts" -c copy -bsf:a aac_adtstoasc output.mp4
Этот метод в целом больше не рекомендуется — concat demuxer (Метод 1) проще и надёжнее.
Специальные сценарии
Объединение видео и аудиодорожек
Совместите видеофайл с отдельным аудиофайлом:
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -shortest output.mp4
-shortest— остановиться, когда закончится более короткий поток
Замена аудио в видео
ffmpeg -i video.mp4 -i new_audio.mp3 -c:v copy -c:a aac -map 0:v -map 1:a output.mp4
Конкатенация видео с разной частотой кадров
Принудительно задайте всем входным файлам 30 кадров/с перед конкатенацией:
ffmpeg -i clip1.mp4 -i clip2.mp4 \
-filter_complex \
"[0:v]fps=30[v0];[1:v]fps=30[v1]; \
[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
Видео без аудио
Если в некоторых клипах отсутствуют аудиодорожки, добавьте тишину:
ffmpeg -i clip_no_audio.mp4 -f lavfi -i anullsrc=r=44100:cl=stereo \
-c:v copy -c:a aac -shortest clip_with_silence.mp4
Затем объедините как обычно.
Распространённые ошибки и их исправление
«Discarding non-monotonous DTS»
Временны́е метки не совпадают между клипами. Перекодируйте:
ffmpeg -f concat -safe 0 -i files.txt -c:v libx264 -c:a aac output.mp4
«Stream 0 codec does not match»
Ваши клипы имеют разные кодеки. Используйте concat filter (Метод 2) вместо concat demuxer.
«Discarding 1 additional packets» / проблемы синхронизации
Добавьте -fflags +genpts для повторной генерации временны́х меток:
ffmpeg -fflags +genpts -f concat -safe 0 -i files.txt -c copy output.mp4
В выходном файле чёрные кадры между клипами
Это происходит, когда клипы имеют разные форматы пикселей. Задайте общий формат принудительно:
ffmpeg -i clip1.mp4 -i clip2.mp4 \
-filter_complex "[0:v]format=yuv420p[v0];[1:v]format=yuv420p[v1];[v0][0:a][v1][1:a]concat=n=2:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
Пропустите терминал: используйте WaveSpeed Desktop
Объединение видео с помощью FFmpeg означает выбор между тремя разными методами, создание списков файлов, устранение несовместимости кодеков, отладку проблем с временны́ми метками и написание строк filter_complex, которые выглядят как кошмарные регулярные выражения.
WaveSpeed Desktop включает встроенный Media Merger, который упрощает всё:
- Перетащите ваши видеоклипы
- Упорядочьте их по необходимости
- Нажмите «Объединить» — один файл, готово
Разные форматы? Разные разрешения? Приложение обрабатывает это автоматически.

Скачайте WaveSpeed Desktop бесплатно: https://github.com/WaveSpeedAI/wavespeed-desktop/releases
Часто задаваемые вопросы
Какой метод concat использовать? Если все клипы имеют одинаковый кодек и разрешение, используйте Метод 1 (demuxer) — он мгновенный. Если клипы чем-либо отличаются, используйте Метод 2 (filter).
Можно ли добавить переходы между клипами?
FFmpeg поддерживает базовые переходы перекрёстного затухания с помощью фильтра xfade, но это сложно. Для переходов визуальный редактор обычно удобнее.
Снижает ли объединение видео качество?
Нет, при использовании -c copy (Метод 1). При использовании concat filter (Метод 2) происходит перекодирование и возможна небольшая потеря качества. Используйте низкое значение CRF (18–20), чтобы минимизировать её.
Есть ли ограничение на количество объединяемых видео? В FFmpeg нет жёсткого ограничения. Практически, потребление памяти и время обработки растут пропорционально количеству входных файлов.



