выполнение команды ffmpeg с помощью команды getRuntime (). exec () - PullRequest
2 голосов
/ 27 декабря 2011

Я хочу запустить команду ffmepg прямо на Android. простая команда

ffmpeg -i vid.mp4 out.mp4

Теперь проблема в том, что я искал в интернете и нашел лучший андроид ffmpeg, который можно найти здесь

http://bambuser.com/opensource

Я скачал его, прочитал файл readme и скомпилировал его. папка ffmpeg. Я сохранил это в <--projectfolder-->/ffmpeg/

в папке ffmpeg есть исполняемый файл ffmpeg с именем ffmpeg folder

Я скопировал его в папку с файлами и запустил эту команду

  try {    

    Toast.makeText(this, "Working", Toast.LENGTH_SHORT).show();

    Process p = Runtime.getRuntime().exec("/data/data/com.koder.testffmpeg/files/ffmpeg -i /sdcard/vid.mp4 /sdcard/out.mp4");


    } catch (IOException e) {

    txt.setText(e.toString());

    Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();

    e.printStackTrace();

    }

по этой ссылке Как уменьшить размер видео, снятого камерой по умолчанию с помощью FFMPEG в Android?

но все равно не работает всегда исключение я не знаю что не так Может кто-нибудь PLZ помочь мне с этим

java.io.IOException: Error running exec(). Command:[/data/data/com.koder.testffmpeg/files/ffmpeg -i /sdcard/vid.mp4 /sdcard/out.mp4] Working Directory: null Environment:null

Ответы [ 4 ]

2 голосов
/ 11 апреля 2014

Вы должны использовать getBaseContext().getApplicationInfo().nativeLibraryDir вместо "/data/data/com.example.ffmpegnew/files/"

1 голос
/ 11 марта 2013

Дайте разрешение на выполнение ffmpeg примерно так:

chmod 700 ffmpeg
0 голосов
/ 12 мая 2015

Вы можете объединить ответы выше, как это:

 Process p = Runtime.getRuntime().exec("chmod 700 "+getBaseContext().getApplicationInfo().nativeLibraryDir + "/ffmpeg ...");
0 голосов
/ 27 декабря 2011

Попробуйте использовать это:

Process proc = null;
ProcessBuilder pb = new ProcessBuilder();
proc = pb.command("String...yourCommand")
                    .redirectErrorStream(true).start();
BufferedReader bReader = new BufferedReader(new InputStreamReader(
                    proc.getInputStream()));

Этот код работает для меня, чтобы получить подробную информацию о пробуждении системы в android.may может быть это полезно для вас.

...