Android FFMpeg No such file or directory 错误

Posted

技术标签:

【中文标题】Android FFMpeg No such file or directory 错误【英文标题】:Android FFMpeg No such file or directory error 【发布时间】:2016-05-23 11:57:38 【问题描述】:

我正在使用 ffmpeg for android(使用 gradle 插件 'com.writingminds:FFmpegAndroid:0.3.2')并且我正在尝试将视频裁剪为 16:9(w:h)的比例。原始视频是 1080:1920 (w:h)。 当我执行命令时,我得到一个 IOException No such file or directory。

我正在使用的命令:

-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

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

有什么帮助吗?

【问题讨论】:

如错误所示,您的目录未创建或文件不存在。你应该再确认一次。 @lalith 感谢您的回复。我实际上检查了几次目录和文件是否存在。 您找到解决方案了吗? 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

我遇到了同样的异常。我忘了加载 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();
        
    

【讨论】:

以上是关于Android FFMpeg No such file or directory 错误的主要内容,如果未能解决你的问题,请参考以下文章

error while loading shared libraries: libhiredis.so.0.14: cannot open shared object file: No such fi

错误记录编译 ijkplayer 报错 (fatal error: ijksoundtouch/ijksoundtouch_wrap.h: No such file or directory )

错误记录编译 ijkplayer 报错 (fatal error: libyuv.h: No such file or directory #include “libyuv.h“ )

Android open failed: ENOENT (No such file or directory)

redhat7安装jdk1.7报错/home/renqiwei/jdk1.7/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such fi

android sqlite no such table 的解决办法