Android ffmpeg应用视频效果需要时间

时间:2014-01-30 11:35:56

标签: android ffmpeg video-editing

我使用下面的命令来应用效果,它需要6-8分钟才能应用效果2分钟视频。 请帮我改进ffmpeg命令的有效时间。

String commandStr = "ffmpeg -y -i "
            + mVideoData.getPath()
            + " -strict experimental -vf curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -vcodec mpeg4 /sdcard/videokit/curve.mp4";

提前致谢。

3 个答案:

答案 0 :(得分:3)

请记住,您正在使用手机。

这些不是CPU的主力 - 它们只是手机,专为少量电池长时间运行而设计。 curves过滤器非常耗费资源,因为它为输入视频中的每一个帧计算每个像素的新值。视频编码器本身可能不会成为瓶颈。

对视频的影响最好不是通过手机本身呈现,而是一些强大的网络服务器。在手机上,您可能希望首先在预览剪辑上运行效果,或者只是静止图像。

答案 1 :(得分:2)

首先,我完全赞同@slhck。您必须了解移动计算的局限性。但仍然要在这里满足你,你可以试试这些。

包含-preset ultrafast选项。它减少了很多时间,但牺牲了质量。我用4 min.视频运行你的命令,需要3-4分钟才能完成。

String commandStr = "ffmpeg -y -i "
        + mVideoData.getPath()
        + " -strict experimental -vf curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -preset ultrafast /sdcard/videokit/curve.mp4"; 

接下来,您可以减少audio bitrate并删除audio sampling费率。如果可能,还要减少framerate。所有这些都可以共同减少你的时间。

希望这可以帮助你。欢呼。:)

答案 2 :(得分:-1)

每秒图片创建视频

commandStr = "ffmpeg -framerate 1/1 -i " + privatePath + "img_%d.jpg -strict experimental -vf curves=vintage -s 640x480 -r 10 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -preset ultrafast "+privatePath+ "Video.mp4";