Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ffmpeg应用视频效果需要时间_Android_Ffmpeg_Video Editing - Fatal编程技术网

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

Android ffmpeg应用视频效果需要时间,android,ffmpeg,video-editing,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 -vco

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

提前谢谢

请记住,您正在使用手机

这些不是CPU的工作区,它们只是手机,只需少量电池即可长时间运行。
curves
过滤器非常占用资源,因为它为输入视频中的每一帧计算每一个像素的新值。视频编码器本身可能不会成为这里的瓶颈


视频效果不是在手机上,而是在一些强大的web服务器上得到更好的渲染。在手机上,您可能希望先在预览剪辑上运行效果,或者只在静止图像上运行效果。

请记住,您正在使用手机

这些不是CPU的工作区,它们只是手机,只需少量电池即可长时间运行。
curves
过滤器非常占用资源,因为它为输入视频中的每一帧计算每一个像素的新值。视频编码器本身可能不会成为这里的瓶颈


视频效果不是在手机上,而是在一些强大的web服务器上得到更好的渲染。在手机上,你可能想先在预览剪辑上运行效果,或者只是在静止图像上运行效果。

首先,我完全同意@slhck。你必须理解移动计算的局限性。但为了让你满意,你可以试试这些

包括
-预设超快
选项。它大大减少了时间,但牺牲了质量。我用这个运行了你的命令
4分钟。
视频,花了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"; 
接下来,您可以降低
音频比特率
并删除
音频采样
速率。如果可能,还可以降低
帧率
。所有这些都可以减少你的时间


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

首先,我完全同意@slhck。你必须理解移动计算的局限性。但为了让你满意,你可以试试这些

包括
-预设超快
选项。它大大减少了时间,但牺牲了质量。我用这个运行了你的命令
4分钟。
视频,花了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"; 
接下来,您可以降低
音频比特率
并删除
音频采样
速率。如果可能,还可以降低
帧率
。所有这些都可以减少你的时间


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

每秒图像创建视频

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

每秒图像创建视频

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

谢谢你的回复。使用上面的命令,但没有任何形式的时间改进;但是您必须看到总体结果(对于所有文件大小)。请注意,OP使用mpeg4编码器,您的命令使用x264。使用x264使整个系统再次运行更长时间,即使使用了超快预设。也许你可以尝试编码到MJPEG或者无损地查看过滤本身需要多长时间(cc@PrvN),谢谢你的回复。使用上面的命令,但没有任何形式的时间改进;但是您必须看到总体结果(对于所有文件大小)。请注意,OP使用mpeg4编码器,您的命令使用x264。使用x264使整个系统再次运行更长时间,即使使用了超快预设。也许可以尝试编码到MJPEG或无损地查看过滤本身需要多长时间(cc@PrvN)