Android上的用户ffmpeg
基本上,我需要在android中合并(附加)音频文件。这是为语音记录器执行暂停/恢复功能所必需的 我已经在Android上成功编译了bambuser ffmpeg,如下所示Android上的用户ffmpeg,android,android-ndk,ffmpeg,Android,Android Ndk,Ffmpeg,基本上,我需要在android中合并(附加)音频文件。这是为语音记录器执行暂停/恢复功能所必需的 我已经在Android上成功编译了bambuser ffmpeg,如下所示 1. Oracle Virtual Box 2. Ubuntu 12.04 x86 3. android-ndk r8 4. Archive for client versions 1.3.7 to 1.6.6 (来自bambuser) 我已经在build.sh中更改了包名以适合我的包名。 构建之后,我从构建文件夹中获得了
1. Oracle Virtual Box
2. Ubuntu 12.04 x86
3. android-ndk r8
4. Archive for client versions 1.3.7 to 1.6.6
(来自bambuser)
我已经在build.sh中更改了包名以适合我的包名。
构建之后,我从构建文件夹中获得了ffmpeg,其结构如下
ffmpeg
-armeabi
-armeabi-v7a
我已将ffmpeg文件夹复制到windows计算机中的project/jni文件夹中
创建了一个native.c
文件以包含必要的lib。
制作ndk构建
。得到了.so
文件。
当我尝试在android活动中执行此操作时
try {
System.loadLibrary("FFmpegTest");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
File dir = new File("/mnt/sdcard");
Process p=Runtime.getRuntime().exec("ffmpeg -i test.wav test1.wav",null,dir);
try {
p.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
我得到以下错误。05-31 11:57:53.532: D/dalvikvm(278): Trying to load lib /data/data/com.example.ffmpegtest/lib/libFFmpegTest.so 0x43e37a88
05-31 11:57:53.532: D/dalvikvm(278): Added shared lib /data/data/com.example.ffmpegtest/lib/libFFmpegTest.so 0x43e37a88
05-31 11:57:53.532: D/dalvikvm(278): No JNI_OnLoad found in /data/data/com.example.ffmpegtest/lib/libFFmpegTest.so 0x43e37a88, skipping init
05-31 11:57:53.562: W/System.err(278): java.io.IOException: Error running exec(). Command: [ffmpeg, -i, test.wav test1.wav] Working Directory: /mnt/sdcard Environment: null
谁能给我指导一下这个过程吗?我想你不需要任何
*。所以
您可能应该为Android编译ffmpeg
二进制文件
然后将二进制文件放入res/raw
文件夹
然后,在第一次执行时,您的程序应将其从res/raw
复制到应用程序的dir,并在其上设置chmod+x
然后,您可以使用System.exec
等调用ffmpeg二进制文件
这对我很管用。我使用了这里的代码https://github.com/halfninja/android-ffmpeg-x264
作为一个例子。@Andy Developer我正试图在使用ubuntu的virtualBox的帮助下从我的windows操作系统构建ffmpeg。你能告诉我下载和构建它的步骤吗?我正试图用我的windows操作系统构建ffmpegvirtualBox使用ubuntu的帮助你能给我一些步骤吗?我应该下载哪些东西来构建它