ffmpeg:将多个图像叠加到视频中
ffmpeg: overlay multiple images to a video
为了叠加一个单个图像到一个视频中,我可以这样做:
ffmpeg -i vid00.mp4 -i img00.png -filter_complex "[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'" -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4
如何在单个 ffmpeg
调用中将 多张 图像叠加到视频中?
我尝试过类似的东西:
ffmpeg -i vid00.mp4 -i img00.png -i img01.png -filter_complex "\
[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'[v0]; \
[2:v][3:v]overlay=0:0:enable='between(t, 3, 4)'[v1]; \
[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4
及其变体(通过弄乱 [0:v][1:v]
索引),但有用。,
组合命令:
ffmpeg -i vid00.mp4 -i img00.png -i img00.png -filter_complex "[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'[v0];[v0][2:v]overlay=0:0:enable='between(t, 3, 4)'" -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4
为了叠加一个单个图像到一个视频中,我可以这样做:
ffmpeg -i vid00.mp4 -i img00.png -filter_complex "[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'" -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4
如何在单个 ffmpeg
调用中将 多张 图像叠加到视频中?
我尝试过类似的东西:
ffmpeg -i vid00.mp4 -i img00.png -i img01.png -filter_complex "\
[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'[v0]; \
[2:v][3:v]overlay=0:0:enable='between(t, 3, 4)'[v1]; \
[v0][v1]concat=n=2:v=1:a=0,format=yuv420p[v]" -map "[v]" -map 0:a -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4
及其变体(通过弄乱 [0:v][1:v]
索引),但有用。,
组合命令:
ffmpeg -i vid00.mp4 -i img00.png -i img00.png -filter_complex "[0:v][1:v]overlay=0:0:enable='between(t, 1, 2)'[v0];[v0][2:v]overlay=0:0:enable='between(t, 3, 4)'" -c:v libx264 -preset ultrafast -qp 20 -c:a copy -y vid01.mp4