我已经在Android上编译了FFmpeg (libffmpeg.so)。现在,我必须构建一个像RockPlayer这样的应用程序,或者使用现有的安卓多媒体框架来调用FFmpeg和视频播放。
您有步骤/过程/代码/示例来集成FFmpeg / StageFright吗?
您能指导我如何使用这个库进行多媒体播放吗?
我已经画了,混过了。
发布于 2017-03-31 10:54:14
'com.writingminds:FFmpegAndroid:0.3.2',将其添加到gradle1. Add this inside onCreate :ffmpeg = FFmpeg.getInstance(this.getApplicationContext());
(先声明FFmpeg ffmpeg; )
2.加载库:loadFFMpegBinary();
使用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());
}
}**
发布于 2017-03-31 05:44:56
从这里下载ffmpeg:http://bambuser.com/opensource。它包含了为android构建ffmpeg的脚本。修改build.sh。将"com.bambuser.broadcaster“替换为您的包名。您还需要设置ffmpeg标志以启用您感兴趣的编解码器。运行build.sh,并将build/ffmpeg目录复制到应用程序jni/lib目录中。从SO中使用fasaxc的makefile。在jni目录中创建一个native.c文件,并创建一个java包装器。首先,您可以在NDK样本中的hello-jni之后对其进行建模(/ samples /hello-jni)。在native.c文件中包括标题,如下所示:#include "libavcodec/avcodec.h“。并调用所需的函数: avcodec_register_all()等.通过添加:Static{ System.loadLibraries("");}在根活动中包含本机库
https://stackoverflow.com/questions/43133158
复制相似问题