我在Android上编译了FFmpeg
(libffmpeg.so
)。现在我必须构建一个像RockPlayer这样的应用程序,或者使用现有的Android多媒体框架来调用FFmpeg
以及视频播放。
您是否有关于在Android / StageFright上集成FFmpeg
的步骤/程序/代码/示例?
您能否指导我如何将此库用于多媒体 重放?
我已经完成渲染,混音。
答案 0 :(得分:0)
从这里下载ffmpeg:http://bambuser.com/opensource。它包含为android构建ffmpeg的脚本。 修改build.sh。将“com.bambuser.broadcaster”替换为您的包名称。您还需要设置ffmpeg标志以启用您感兴趣的编解码器。 运行build.sh,并将build / ffmpeg目录复制到应用程序jni / lib目录中。 使用来自SO帖子的fasaxc的makefile。 在jni目录和java包装器中创建native.c文件。首先,您可以在NDK样本(/ samples / hello-jni)中的hello-jni之后对其进行建模。 在native.c文件中包含标题,如下所示:#include“libavcodec / avcodec.h”。并调用您需要的函数:avcodec_register_all()等... 通过添加以下内容在根活动中包含本机库:static {System.loadLibraries(“”); }
答案 1 :(得分:0)
编译'com.writingminds:FFmpegAndroid:0.3.2'
将此添加到gradle
将此内容添加到onCreate:
<强> ffmpeg = FFmpeg.getInstance(this.getApplicationContext());
强>
(先声明FFmpeg ffmpeg;
)
加载库:loadFFMpegBinary();
使用ffmpeg为视频添加音频的代码:
使用execFFmpegBinaryShortest(null);
**
private void execFFmpegBinaryShortest(final String[] command) {
final File outputFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");
String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy","-shortest",outputFile.getPath()};
try {
ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
System.out.println("on failure----"+s);
}
@Override
public void onSuccess(String s) {
System.out.println("on success-----"+s);
}
@Override
public void onProgress(String s) {
//Log.d(TAG, "Started command : ffmpeg "+command);
System.out.println("Started---"+s);
}
@Override
public void onStart() {
//Log.d(TAG, "Started command : ffmpeg " + command);
System.out.println("Start----");
}
@Override
public void onFinish() {
System.out.println("Finish-----");
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// do nothing for now
System.out.println("exceptio :::"+e.getMessage());
}
}
**