2015-04-19 6 views
1

Я использую библиотеку 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?

Заранее благодарен!

+0

Вы включили подробный уровень журнала? – ben75

+0

@ ben75 вы имеете в виду, если я включил отладку и журналы для приложения/устройства или что-то о ffmpeg, которые я не знаю? – hardartcore

+0

Да, я говорю о logcat log level – ben75

ответ

0

Так после многих испытаний и строительства ffmpeg для Android я обнаружил, что с помощью ffmpeg исполняемых сборок без PIE support (который требуется Android Lollipop) на Android 4.0/4.0.3/4.0.4 работает как шарм.

Таким образом, если у вас была такая же проблема, попробуйте ввести код с ffmpeg build, который не содержит PIE support и убедитесь, что он будет работать. В моем случае это сделало трюк.

Смежные вопросы