Доброго времени суток!
Монтирую видеоряд, состоящий из нарезки моментов длительностью от пол минуты до нескольких минут. Практически все кусочки были получены с помощью ffmpeg без параметров перекодирования, нарезка нужных моментов из больших файлов. При этом он совершил конвертацию из из mpeg4 (оригиналы были в нём) в h264.
Склеиваю через ffmpeg -f concat без пересжатия (-c copy)
Если использовать только файлы, описанные выше - проблем нет.
Если же в ряд встроить файл из другого источника (созданный другой программой) - после него начинается рассинхронизация аудио и видео.
Вот пример информации о трех файлах:
ffmpeg -i file1.mp4
Duration: 00:00:07.07, start: 0.000000, bitrate: 250 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], 112 kb/s, 14.01 fps, 14.01 tbr, 10k tbn (default)
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 132 kb/s (default)
ffmpeg -i file2.mp4
Duration: 00:00:17.33, start: 0.000000, bitrate: 1486 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], 1349 kb/s, 14.25 fps, 15 tbr, 15360 tbn (default)
Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 131 kb/s (default)
ffmpeg -i file3.mp4
Duration: 00:00:17.02, start: 0.000000, bitrate: 842 kb/s
Stream #0:0[0x1](eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], 706 kb/s, 14 fps, 14 tbr, 14336 tbn (default)
Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo,fltp, 131 kb/s (default)
Второй создан ffmpeg, первый и третий - другой программой. По окончании первого файла звук из второго начинается раньше видео, где-то на секунду. При некоторых параметрах сжатия и видеодорожка как будто замедляется. Независимо от того, что я задаю: -c copy либо -r 14 -c:v libx264 -c:a aac -ar 44100 -ac 2 -b:a 128k. Кажется, проблема не с кодеком: если клеить (concat, copy) файлы с разными кодеками - видео с кодеком первого файла отображается нормально, остальные поврежденные (стоп кадр или мигания - это закономерно. Если бы незначительное отличие частоты кадров влияло - оно бы ликвидировалось второй командой (пересжатие с -r 14)
Как побороть?


