в
с каким параметром ffmpeg concat при объединении будет пропускать все лишнее, а объединять подходящее

о
Для того чтобы ffmpeg автоматически отбрасывал все лишние потоки (например, обложки альбомов, лишние дорожки субтитров или метаданные) и объединял только основные подходящие потоки (видео и аудио), используются параметры -map и -copy_unknown. [1, 2]

Наиболее надежная команда для объединения файлов через текстовый список (concat) такая:

ffmpeg -f concat -safe 0 -i list.txt -map 0:v -map 0:a -c copy output.mp4

Основные параметры для фильтрации «лишнего»:

-map 0:v -map 0:a
Эти параметры принудительно указывают FFmpeg брать только первый видеопоток (0:v) и только первый аудиопоток (0:a) из исходных файлов. Всё остальное (дополнительные языковые дорожки, метаданные, обложки) будет пропущено. [1]
-copy_unknown
Используется, если в ваших видео есть специфические служебные потоки (например, телеметрия или субтитры), которые вы хотите сохранить, но боитесь, что они вызовут ошибку в неподходящем формате. Флаг разрешает их копирование без полного понимания. [1]
-c copy
Ключевой параметр, который отключает перекодирование. Он просто «склеивает» кусочки вместе. Важное условие: исходные видеоролики должны иметь одинаковое разрешение и кодеки

Если видео изначально отличаются по формату

Если видео имеют разные кодеки или разрешения, использовать простой concat нельзя — файлы нужно перекодировать. В этом случае применяется особый фильтр, который нормализует дорожки и отбрасывает лишнее: [1]

ffmpeg -i in1.mp4 -i in2.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4

Здесь n=2 — количество исходных файлов, v=1 и a=1 задают на выходе ровно один видео- и один аудиопоток (все остальные потоки программа пропустит). [1, 2]
