ffmpeg将一系列图像转换为视频 - 使用交叉淡入淡出或每两帧之间的任何其他过渡

问题描述 投票:3回答:2

我目前能够将一系列图像转换为视频,但我还需要在它们之间添加过渡/动画。

String[] ffmpegCommand = {"/data/data/mypackage/app_bin/ffmpeg", "-y",
"-qscale", "1", "-r", "" + framerate, "-i", "/data/data/mypackage/app_ipImg/image%3d.jpg",
"-t", "" + (((total_images) * delay_of_each_frame_in_seconds) + 4), //"-s",heightwidth,
"-vcodec", "libx264", "-s", "640x480",
 Environment.getExternalStorageDirectory() + "/photo_directory/myVideo.mp4"};

上面的命令对我来说是从图像系列创建视频

现在,我想在每个帧之前添加淡入淡出或其他过渡/动画以在最终视频中显示。

我搜索了很多,但没有找到解决这个问题的方法。

请指教我的方式。

提前致谢。

image video ffmpeg transition cross-fade
2个回答
0
投票

两种方法

1)为每个图像/幻灯片创建一个视频,并为每个图像/幻灯片添加淡入淡出,然后将视频添加到一起。这个link解释了如何为图像创建淡入淡出效果。

2)使用过滤器的混合以及-loop选项,如this link中所述。


0
投票

我建议你找到有关帧混合或运动插值的更多信息。

这例如在间隔拍摄视频中用于平滑渲染。

  • 要混合帧,请将ffmpeg与tblend过滤器一起使用。例如,以下命令可以提供帮助:ffmpeg -i {input} -vf "tblend=average,framestep=2,setpts=0.50*PTS" -r {srcfps} -{encoding parameters} {output}。用输入文件{input}替换{output},用你的源帧每秒替换{srcfps}-{encoding parameters}用ffmpeg输出的参数。您还可以将minterpolate滤镜添加到滤镜堆栈以添加一些运动模糊。
  • 要根据运动生成新帧,Butterflow项目可以提供帮助:https://github.com/dthpham/butterflow 特征 制作运动插值视频(通过基于运动渲染中间帧来增加视频的帧速率,使用像素变形和混合的组合)。 制作流畅的动画视频(帧间简单混合)。 利用插值帧制作流畅的慢动作视频。
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.