Я использую библиотеку Guardian Project Android Java FFMPEG для изменения размера видео. Текущий код, который работает на android 5.0.1/5.1.0/4.4.4
:Андроид ICS FFMPEG масштабное видео не работает
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 это 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 ICS?
Заранее благодарен!
Вы включили подробный уровень журнала? – ben75
@ ben75 вы имеете в виду, если я включил отладку и журналы для приложения/устройства или что-то о ffmpeg, которые я не знаю? – hardartcore
Да, я говорю о logcat log level – ben75