Итак, я создаю несколько видеоклипов в Python, используя FFMPEG, затем пытаюсь объединить их вместе. Я создаю несколько видео с именами result1000, result1001 et c, а затем создаю эффект перехода, который я хочу наложить между этими видео. Result1000, result1001 ... et c идеально согласуются друг с другом, однако вставка эффекта перехода между ними приводит к потере звука после каждого перехода после первого перехода.
Создание транзита
ffmpeg -loop 1 -y -i media/templates/bg.png -i media/swoosh_sound.mp3 -shortest -acodec copy -vcodec libx264rgb output/swoosh.mp4
Создание видеоклипов
ffmpeg -loop1 -y -i image_files/image+str(1000+i)+.png -i audio_files/audio+str(1000+i)+.mp3 -shortest -acodec copy -vcodec libx264rgb output/result+str(1000+i)+.mp4
ffmpeg_files.txt затем выглядит примерно так
file 'output/result1000.mp4'
file 'output/result1001.mp4'
file 'output/result1002.mp4'
file 'output/result1003.mp4'
file 'output/result1004.mp4'
file 'output/swoosh.mp4'
file 'output/result1005.mp4'
file 'output/result1006.mp4'
и команда concat, которую я использую:
ffmpeg -f concat -safe 0 -i ffmpeg_files.txt output/no_bg_out.mp4
В консоли при запуске комментария concat будет сказано
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001f289b44c40] Auto-inserting h264_mp4toannexb bitstream filter
для каждого resultXXXX клипа, а затем, как только он достигает переходного клипа и начинает рассылать спам
[mp4 @ 000001aa093ad100] Non-monotonous DTS in output stream 0:1; previous: 13619623, current: 8777816; changing to 13619624. This may result in incorrect timestamps in the output file.
Я ознакомился с упомянутыми решениями Здесь , но, похоже, ни одно из них не решило мою проблему. Следует отметить, что все видеоклипы создаются из .mp3 аудиофайлов и .png графических файлов.