в
почему при объединении разных mp4 через concat нарушен звук

о
Нарушение звука при склейке (concat) файлов MP4 происходит потому, что метод прямого копирования потоков (-c copy) требует, чтобы все исходные видеоролики имели идеально совпадающие технические характеристики. Если они отличаются, плеер не может корректно декодировать аудиопоток на стыках. [1, 2]

Чаще всего это происходит по следующим причинам:

Разная частота дискретизации аудио: У одного файла звук записан с частотой 44.1 кГц, а у другого — 48 кГц.
Отличающиеся кодеки или профили: Например, звук сжат кодеком AAC-LC, а в другом видео — AAC-HE, либо разное количество аудиоканалов (моно против стерео).
Переменный битрейт (VBR): Исходные файлы сжимались с разной скоростью потока или имеют разрывы таймкодов (метаданных).
Конфликт аудио и видео дорожек: Если длительности видео- и аудиопотоков слегка отличаются.

Как это исправить и предотвратить

Чтобы избежать рассинхронизации или пропажи звука, объединяйте видео через полное перекодирование — это нормализует параметры всех файлов в единый стандарт.
Вариант 1: Через консоль FFmpeg
Перекодируйте аудио и видео с помощью одной команды, чтобы привести все фрагменты к общему формату:

ffmpeg -i input1.mp4 -i input2.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

Вариант 2: Использование видеоредакторов
Если вы не работаете с командной строкой, используйте программы с монтажным столом. Добавьте файлы на таймлайн и экспортируйте проект единым файлом. Подойдут:

Простые бесплатные редакторы: LosslessCut или Avidemux (позволяют настроить экспорт аудио на перекодирование).

Профессиональный софт: DaVinci Resolve, Adobe Premiere Pro или CapCut. [1]

Если пользуетесь консолью FFmpeg, уточните:
Вылетает ли ошибка в терминале при использовании стандартного concat?
Происходит ли рассинхронизация на стыке видео, или звук пропадает полностью?

