我使用下面的命令来应用效果,它需要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";
提前致谢。
答案 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";