FFMPEG concat отключает звук после определенного клипа - PullRequest
1 голос
/ 10 апреля 2020

Итак, я создаю несколько видеоклипов в 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 графических файлов.

1 Ответ

0 голосов
/ 10 апреля 2020

Все атрибуты должны совпадать, но swoosh.mp4 отличается от остальных с другой частотой дискретизации звука и расположением канала. Перекодируйте аудио и попробуйте снова:

ffmpeg -i swoosh.mp4 -c:v copy -c:a libmp3lame -ar 24000 -ac 1 -b:a 32k swoosh2.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...