3

我想通过我的 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 命令可以以慢动作保存视频?

4

1 回答 1

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};

查看我博客上的这篇文章以获得完整的教程

于 2017-03-25T09:25:54.907 回答