ffmpeg 视频淡入淡出效果不成功 - 没有过渡或第二个视频
ffmpeg video fade effect unsuccessful - no transition or the second video
我有 2 个 T
秒长的视频,是使用以下命令从 PNG
图像制作的:
ffmpeg -i workspace/1.png -vcodec libx264 -t T ./1.mp4
ffmpeg -i workspace/2.png -vcodec libx264 -t T ./2.mp4
使用这些视频,我试图在这 2 个视频之间创建一个持续 T
秒的过渡,我们从第一个视频开始逐渐淡入第二个视频。这是我想到的转换的简单 ASCII 可视化:
Alpha \ Time 0.........T
1.mp4 100.........0
2.mp4 0.......100
因此,视频和淡入淡出效果都应立即开始,并以视频本身结束。 (即,偏移量为 0
,持续时间为 T
)
但是当我尝试制作这样的视频时,生成的 MP4
只包含 1.mp4
的视频,没有任何淡入淡出效果。这是我用于制作过渡视频的命令:
ffmpeg -i 1.mp4 -i 2.mp4 -y -filter_complex "xfade=transition=fade:offset=0:duration=T" -t T ./1-2.mp4
我认为 filter_complex
选项中的偏移量和持续时间参数足以让过渡继续进行。
我看过类似的 Whosebug 问题,但在所有这些问题中,淡入淡出效果是 在 视频之间 运行 按顺序进行,而不是并行进行。这就是这里发生的事情吗?如何从一开始就让两个视频 运行 并行,同时对它们应用淡入淡出?
- 您没有循环播放图像,所以您的视频只有 1 帧长。
- xfade offset 是您希望发生转换时的时间戳。
例子。每张图片时长 5 秒。从 1.png
到 2.png
的 1 秒交叉渐变将在 1.png
开始后 4 秒发生。 output.mp4
将持续 9 秒。
ffmpeg -loop 1 -t 5 -i 1.png -loop 1 -t 5 -i 2.png -filter_complex "xfade=transition=fade:offset=4:duration=1,format=yuv420p" -movflags +faststart output.mp4
参见:
我有 2 个 T
秒长的视频,是使用以下命令从 PNG
图像制作的:
ffmpeg -i workspace/1.png -vcodec libx264 -t T ./1.mp4
ffmpeg -i workspace/2.png -vcodec libx264 -t T ./2.mp4
使用这些视频,我试图在这 2 个视频之间创建一个持续 T
秒的过渡,我们从第一个视频开始逐渐淡入第二个视频。这是我想到的转换的简单 ASCII 可视化:
Alpha \ Time 0.........T
1.mp4 100.........0
2.mp4 0.......100
因此,视频和淡入淡出效果都应立即开始,并以视频本身结束。 (即,偏移量为 0
,持续时间为 T
)
但是当我尝试制作这样的视频时,生成的 MP4
只包含 1.mp4
的视频,没有任何淡入淡出效果。这是我用于制作过渡视频的命令:
ffmpeg -i 1.mp4 -i 2.mp4 -y -filter_complex "xfade=transition=fade:offset=0:duration=T" -t T ./1-2.mp4
我认为 filter_complex
选项中的偏移量和持续时间参数足以让过渡继续进行。
我看过类似的 Whosebug 问题,但在所有这些问题中,淡入淡出效果是 在 视频之间 运行 按顺序进行,而不是并行进行。这就是这里发生的事情吗?如何从一开始就让两个视频 运行 并行,同时对它们应用淡入淡出?
- 您没有循环播放图像,所以您的视频只有 1 帧长。
- xfade offset 是您希望发生转换时的时间戳。
例子。每张图片时长 5 秒。从 1.png
到 2.png
的 1 秒交叉渐变将在 1.png
开始后 4 秒发生。 output.mp4
将持续 9 秒。
ffmpeg -loop 1 -t 5 -i 1.png -loop 1 -t 5 -i 2.png -filter_complex "xfade=transition=fade:offset=4:duration=1,format=yuv420p" -movflags +faststart output.mp4
参见: