0

我想在单个 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每个文件夹开始的图像,我怎样才能在不改变图像的情况下做到这一点

4

2 回答 2

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
于 2019-03-19T18:03:19.030 回答
0

您可以将图像通过管道传输到-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
于 2019-03-19T14:52:07.863 回答