1

我正在使用下面的命令来应用效果,它需要 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";

提前致谢。

4

3 回答 3

4

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

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

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

于 2014-01-30T12:24:19.003 回答
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。所有这些都可以共同减少您的时间。

希望这对你有帮助。干杯。:)

于 2014-01-30T16:59:03.707 回答
-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";
于 2016-02-01T13:33:18.887 回答