我想通过我的Android应用程序以慢动作保存视频。我试图通过改变帧速率将视频转换为慢动作。
我使用了以下命令,第一个命令是将每秒30帧从视频转储到临时目录,然后第二个命令正在使用这些图像创建帧速率降低或更快的视频,然后我将删除所有图像来自临时目录。
ffmpeg -i input_file.mp4 -r 30/1 img%03d.png
ffmpeg -framerate 15/1 -i img%03d.png -r 30 -pix_fmt yuv420p out4.mp4
但这是一个非常缓慢的操作。即使对于小型视频,它也会像永远一样。
我甚至尝试更改视频的PTS(演示时间戳),但它在Android手机上无法正常工作 使用此命令:
ffmpeg -i input.mkv -filter:v "setpts=2.0*PTS" output.mkv
如下所示: https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
任何人都可以建议我如何快速完成任务。是否有必要将帧保存到临时目录,我可以将ffmpeg进程的输出传递给另一个通过某种方法并发执行的ffmpeg进程。
是否还有其他ffmpeg命令以慢动作保存视频?
答案 0 :(得分:1)
您只需使用以下命令即可使用ffmpeg创建慢动作视频 -
String[] complexCommand = {"-y", "-i", inputFileAbsolutePath, "-filter_complex", "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]", "-map", "[v]", "-map", "[a]", "-b:v", "2097k", "-r", "60", "-vcodec", "mpeg4", outputFileAbsolutePath};
在我的博客上查看this帖子以获取完整教程