我想通过命令行使用 ffmpeg。我已经将 ffmpeg.so 保存在项目的文件目录中。但是我在这样做时出现异常。这是代码:
public class MainActivity extends Activity {
Process p;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Process p = Runtime.getRuntime().exec("/data/data/com.example.ffmpegnew/files/ffmpeg",null, new File("/data/data/com.example.ffmpegnew/files"));
}
catch(Exception e)
{
System.out.println("exception"+e);
}
}
}
这是异常(exception)情况:
09-16 16:21:24.992: I/System.out(2103): exceptionjava.io.IOException: Error running exec(). Commands: [/data/data/com.example.ffmpegnew/files/ffmpeg] Working Directory: /data/data/com.example.ffmpegnew/files Environment: null
请告诉我我在做什么错误。谢谢。
最佳答案
所以首先,你不能直接执行 shared object
文件。您需要构建一个可以使用 /system/bin
运行的 ffmpeg 可执行文件
请以此为引用FFmpeg on Android
编译完成后,您可以将 APK 的 assets 文件夹中的可执行文件提取到 /data/data/<your package>/
。 (也确保 chmod 755!)
完成后,您可以通过构建命令行字符串并将其传递给 ProcessBuilder
来运行可执行文件。而不是使用 Runtime.exec()
关于android - 如何在 android 中从命令行运行 ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17440850/