我想在单个ffmpeg命令中添加多个文件序列,下面是我的代码,正在创建视频,但是仅使用了第一个图像序列,而第二个被忽略了
ffmpeg -y -i input.mp4 -start_number 0000001 -i 1/%07d.png -i 2/%07d.png -filter_complex "[0][1]overlay=x=10:y=10:enable='between(t,0,3)'[v1];[v1][2]overlay=x=10:y=10:enable='between(t,3.8561422222222,6.9761777777778)'[v2]" -map "[v2]" -map 0:a out.mp4
现在的问题是FFMPEG想要连续的图像,我没有连续图像,每个文件夹中的图像都以0000001.png
开头,如何在不改变图像的情况下完成此操作
答案 0 :(得分:1)
尝试使用glob模式处理编号不一致的问题,并使用setpts填充PTS,这样在显示叠加层之前就不会消耗它:
ffmpeg -y -i input.mp4 -pattern_type glob -i "1/*.png" -pattern_type glob -i "2/*.png" -filter_complex "[0][1]overlay=x=10:y=10:enable='between(t,0,3)'[v1];[2]setpts=PTS+3.856/TB[fg];[v1][fg]overlay=x=10:y=10:enable='between(t,3.8561422222222,6.9761777777778)'[v2]" -map "[v2]" -map 0:a out.mp4
答案 1 :(得分:0)
Can you pipe the images to -f image2pipe
?
cat $(find 1 2 -name '*.png' -print) | ffmpeg -y -i input.mp4 \
-f image2pipe -vcodec png -i - \
-filter_complex "[0][1]overlay=x=10:y=10:enable='between(t,0,3)'[v1];[v1][2]overlay=x=10:y=10:enable='between(t,3.8561422222222,6.9761777777778)'[v2]" \
-map "[v2]" -map 0:a out.mp4