Android ICS FFMPEG 缩放视频不工作

Android ICS FFMPEG scale video not working

我正在使用 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(冰淇淋三明治)上使用此代码不会执行任何操作。虽然在 processComplete 中的其他设备上测试 exitValue 始终等于 0,但在 ICS 上它是 11。这是 LogCat 中的输出:

SHELL 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

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

所以我的问题是,如果我在使用/运行此代码或某些可以阻止 ffmpeg 可执行文件在具有 Android 的旧设备上执行 运行 的任何错误集成电路?

提前致谢!

因此,经过大量测试并为 Android 构建 ffmpeg,我发现使用 ffmpeg 可执行构建而不需要 PIE supportAndroid Lollipop 需要) ) 在 Android 4.0 / 4.0.3 / 4.0.4 上很有魅力。

因此,如果您遇到同样的问题,请尝试使用不包含 PIE supportffmpeg 构建进行测试,看看它是否会起作用。在我的例子中成功了。