【发布时间】:2020-04-11 00:50:49
【问题描述】:
所以我正在使用 FFMPEG 在 Python 中创建多个视频剪辑,然后我试图将它们连接在一起。我创建了多个名为 result1000、result1001 等的视频,然后我创建了一个我想在这些视频之间分层的过渡效果。 result1000、result1001... 等完美结合在一起,但是在它们之间插入过渡效果会导致第一次过渡后的每个剪辑都丢失音频。
创建过渡
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.
我已经阅读了Here 提到的解决方案,但它们似乎都没有解决我的问题。需要注意的是,所有的视频剪辑都是由.mp3音频文件和.png图像文件创建的。
【问题讨论】:
-
所有输入必须具有相同的属性。需要查看有关每个输入的信息。显示
ffmpeg -i output/result1000.mp4 -i output/result1001.mp4 -i output/result1002.mp4 -i output/result1003.mp4 -i output/result1004.mp4 -i output/swoosh.mp4 -i output/result1005.mp4 -i output/result1006.mp4的完整输出 -
Here you go,把它放在hastebin中,因为它很长。