首页 文章

FFMPEG命令执行在android中占用太多时间

提问于
浏览
1

当我运行FFMPEG的任何命令时,执行时花费了太多时间 . 我使用FFMPEG命令进行反向视频,音频视频合并,创建GIF图像和改变视频速度 . 请告诉我如何快速运行FFMPEG命令 . 请帮我

4 回答

  • 0

    在ffmpeg命令中添加以下代码以提高处理速度

    -c:v libx264 -preset ultrafast
    

    用于音频修剪

    int minutes = (int) Math.floor(start_sec / 1000 / 60);
            int seconds =(int)Math.ceil(start_sec / 1000) - (minutes * 60);
            int endSeconds=(int) ((end_sec / 1000) - (minutes * 60));
            int duration=endSeconds-seconds;
            Log.d("start_point_seconds",""+seconds);
            Log.d("start minutes",""+minutes);
            String[] complexCommand = {"-i", src + "", "-ss", "00:"+minutes+":"+seconds, "-t",""+duration ,"-acodec","copy","/storage/emulated/0/Music/"+app_name+"/music_" + number + ".mp3"};
    
  • 0

    ffmpeg的执行时间取决于文件的大小 . 因此,大文件需要很长时间才能进行转换,但这也取决于您正在执行的操作类型 .

  • 0

    你应该在你的ffmpeg命令中使用“-preset”,“ultrafast”来加速执行时间,但它只能在视频小于15秒时起作用,否则它会加速执行时间但延迟视频播放的启动时间,它可能看起来像你的音频和视频与帧不匹配

  • 4

    是的,它在Android设备上非常慢 . FFMPEG 在大多数Android设备上没有硬件速度 . 这意味着所有计算都在 CPU 中完成 . FFMPEG 命令的速度在很大程度上取决于设备的CPU速度 .

    对于通过 FFMPEG 进行视频处理的音频,它必须按一个样本或一帧一帧处理数据 .

    您可能会认为其他具有硬件加速的解决方案,例如 MediaCodecRenderScriptOpen GLESOpen CL ,可以进行密集型计算以加快速度 .

相关问题