我想在我的Android项目中使用ffmpeg
二进制可执行文件。为此,我使用了此(https://github.com/hiteshsondhi88/ffmpeg-android/releases/download/v0.3.3/prebuilt-binaries.zip)链接中的预构建ffmpeg Android二进制文件。
按照步骤,我必须将executable
文件放入/data/data/com.example.rampedsample
目录,这里的com.example.rampedsample
是我的项目packageName。我无法在我的设备中找到此位置,因为它是unrooted.So我使用DDMS
透视图将可执行文件粘贴到Android emulator
的com.example.rampedsample
目录中。
在我的活动中使用了下面的代码
try {
Process p = Runtime.getRuntime().exec("/data/data/com.example.rampedsample/ffmpeg "+Environment.getExternalStorageDirectory()+"/Movies/ramp_video.mp4"
+" -map 0:v -codec copy "+Environment.getExternalStorageDirectory()+"/Movies/ramp_video2.mp4");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Android Manifest权限
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
错误
04-13 16:59:55.314: W/System.err(11387): java.io.IOException: Error running exec(). Command: [/data/data/com.example.rampedsample/ffmpeg, /mnt/sdcard/Movies/ramp_video.mp4, -map, 0:v, -codec, copy, /mnt/sdcard/Movies/ramp_video2.mp4] Working Directory: null Environment: null
04-13 16:59:55.314: W/System.err(11387): at java.lang.ProcessManager.exec(ProcessManager.java:211)
04-13 16:59:55.355: W/System.err(11387): at java.lang.Runtime.exec(Runtime.java:168)
04-13 16:59:55.355: W/System.err(11387): at java.lang.Runtime.exec(Runtime.java:241)
04-13 16:59:55.355: W/System.err(11387): at java.lang.Runtime.exec(Runtime.java:184)
04-13 16:59:55.355: W/System.err(11387): at com.example.rampedsample.MainActivity.onCreate(MainActivity.java:18)
04-13 16:59:55.355: W/System.err(11387): at android.app.Activity.performCreate(Activity.java:5008)
04-13 16:59:55.355: W/System.err(11387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
1条答案
按热度按时间z4iuyo4d1#
请添加READ和WRITE存储
也请参阅此命令并使用它