Android ICS FFMPEG缩放视频无效

时间:2015-04-19 10:29:45

标签: android process ffmpeg

我正在使用Guardian Project Android Java FFMPEG库来调整视频大小。正在处理android 5.0.1 / 5.1.0 / 4.4.4的当前代码:

    File fileTmp = getCacheDir();
    FfmpegController fc = null;
    try {
        fc = new FfmpegController(this, fileTmp);
    } catch (IOException e) {
        e.printStackTrace();
    }
    String path = Environment.getExternalStorageDirectory().getPath() + "/Movies/nexus.mp4";
    final String outPath = Environment.getExternalStorageDirectory().getPath() + "/Movies/test.mp4";
    final Clip out = new Clip(path);
    try {
        if (fc != null) {
            fc.convert(out, outPath, new ShellUtils.ShellCallback() {
                @Override
                public void shellOut(String shellLine) {
                    Log.e("", "SHELL OUT: " + shellLine);
                }

                @Override
                public void processComplete(int exitValue) {
                    Log.e("", "PROCESS COMPLETE: " + exitValue);
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

在Android 4.0.4(Ice Cream Sandwich)上使用此代码无效。在其他设备上进行测试exitValue中的processComplete始终等于0,但在ICS上11SHELL OUT: /data/data/org.hardartcore.ffmpeg/app_bin/ffmpeg -y -i /mnt/sdcard/Movies/NEXUS.mp4 -ab 160k -r ntsc-film -vf scale=568:320 -strict -2 /mnt/sdcard/Movies/Test.mp4 PROCESS COMPLETE: 11 。这是LogCat中的输出:

{{1}}

我不认为这是来自ffmpeg的东西,当库试图从内部存储器中的原始文件夹执行ffmpeg可执行文件时更像是一个问题,但我看不到任何日志或错误也表明这一点。

所以我的问题是,如果我正在使用/运行此代码或可能阻止ffmpeg可执行文件在使用Android ICS的旧设备上运行时出现任何错误?

提前致谢!

1 个答案:

答案 0 :(得分:0)

因此,经过大量测试并为Android构建ffmpeg后,我发现在ffmpeg上使用PIE support可执行构建时没有Android LollipopAndroid 4.0 / 4.0.3 / 4.0.4需要{}}像魅力一样。

因此,如果您遇到同样的问题,请尝试使用不包含ffmpeg的{​​{1}}版本进行测试,看看它是否有效。在我的情况下,这就是诀窍。