Android FFMpeg没有此类文件或目录错误

时间:2016-05-23 11:57:38

标签: android ffmpeg crop

我正在使用ffmpeg for android(使用gradle插件'com.writingminds:FFmpegAndroid:0.3.2')我试图将视频裁剪为16:9(w:h)。原始视频为1080:1920(w:h)。 当我执行命令时,我得到一个IOException没有这样的文件或目录。

我正在使用的命令:

-i /storage/emulated/0/Movies/MyApp/result_joined.mp4 -vf crop=1080:607   -preset ultrafast /storage/emulated/0/Movies/MyApp/result_cropped.mp4

例外:

java.io.IOException: Error running exec(). Command: 
[/data/user/0/my.package.name/files/ffmpeg, -i, /storage/emulated/0/Movies/MyApp/result_joined.mp4, -vf, crop=1080:607, -preset, ultrafast, /storage/emulated/0/Movies/MyApp/result_cropped.mp4] Working Directory: null Environment: null
Caused by: java.io.IOException: No such file or directory

在没有任何帮助的情况下搜索了几个堆栈溢出问题。 我还尝试将文件保存到内部存储而不是外部存储。相同的结果

任何帮助?

2 个答案:

答案 0 :(得分:1)

创建 FFmpeg 的实例后,您需要调用 loadBinary 方法。

try {
    ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
        @Override
        public void onFailure() {
          Logger.i(TAG, "ffmpeg not supported");
        }
    });
} catch (FFmpegNotSupportedException e) {
    e.printStackTrace();
}

答案 1 :(得分:0)

我遇到同样的异常。我忘了加载FFmpeg库。 首先,我们必须加载该库。 在运行命令之前运行此功能。

void LoadFFmpegLibrary()
{
    if(ffmpeg==null)
    {
        ffmpeg = FFmpeg.getInstance(context);
        try {
            ffmpeg.loadBinary(new LoadBinaryResponseHandler() {

                @Override
                public void onStart() {}

                @Override
                public void onFailure() {
                    Toast.makeText(context, "Failed", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onSuccess() {
                    Toast.makeText(context, "Success", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onFinish() {}
            });
        } catch (FFmpegNotSupportedException e) {
            e.printStackTrace();
        }
    }
}