ffmpeg视频淡出效果不成功-没有过渡或第二个视频



我有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

使用这些视频,我试图在这两个视频之间创建一个持续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选项中的偏移量和持续时间参数足以使转换进行。

我看过类似的StackOverflow问题,但在所有这些淡出效果是之间的视频依次运行,而不是并行。这就是这里发生的事吗?我如何使两个视频从一开始就并行运行,而淡出正在应用于它们?

  1. 您没有循环播放图像,所以您的视频只有1帧长
  2. xfade offset是你想要转换发生的时间戳。

的例子。每张图像长5秒。从1.png2.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

:

  • FFmpeg Wiki: xfade
  • 合并多个视频文件与ffmpeg和xfade过滤器

相关内容

  • 没有找到相关文章

最新更新