我现在正在用android java制作视频编辑应用程序,我无法将视频和音频,.mp3和.mp4文件混合在一起,我已经阅读了很多堆栈溢出和github的答案,但我无法获得正确的答案, 我想混合mp3和mp4文件并获取mp4视频并控制两者的音量,我想添加背景音乐,请帮助
先谢谢您
我已经阅读了很多有关堆栈溢出和github的答案,但我无法获得正确的答案
private void audiomix() {
File moviesDir = Environment.getExternalStorageDirectory();
String filePrefix = "mixur_video";
String fileExtn = ".mp4";
yourRealPath = videopath;
File dest = new File(moviesDir, filePrefix + fileExtn);
int fileNo = 0;
while (dest.exists()) {
fileNo++;
dest = new File(moviesDir, filePrefix + fileNo + fileExtn);
}
mixerpath = dest.getAbsolutePath();
String[] cmd1 = {"-i " + yourRealPath + " -i " + audiopath + " -shortest -threads 0 -preset ultrafast -strict -2 " + mixerpath};
Log.d(TAG, "audiomix: " + cmd1);
execFFmpegBinary(cmd1);
}
private void loadFFMpegBinary() {
try {
if (ffmpeg == null) {
Log.d(TAG, "ffmpeg : era nulo");
ffmpeg = FFmpeg.getInstance(this);
}
ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
@Override
public void onFailure() {
showUnsupportedExceptionDialog();
}
@Override
public void onSuccess() {
Log.d(TAG, "ffmpeg : correct Loaded");
}
});
} catch (FFmpegNotSupportedException e) {
showUnsupportedExceptionDialog();
} catch (Exception e) {
Log.d(TAG, "EXception no controlada : " + e);
}
}
private void showUnsupportedExceptionDialog() {
new AlertDialog.Builder(MainActivity.this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Not Supported")
.setMessage("Device Not Supported")
.setCancelable(false)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
})
.create()
.show();
}
private void execFFmpegBinary(final String[] command) {
try {
ffmpeg.execute(command, new ExecuteBinaryResponseHandler() {
@Override
public void onFailure(String s) {
Log.d(TAG, "FAILED with output : " + s);
}
@Override
public void onSuccess(String s) {
Log.d(TAG, "SUCCESS with output : " + s);
Intent intent = new Intent(MainActivity.this, VideoResult.class);
startActivity(intent);
}
@Override
public void onProgress(String s) {
Log.d(TAG, "Started command : ffmpeg " + command);
progressDialog.setMessage("Please Wait Proccessing the video");
Log.d(TAG, "progress : " + s);
}
@Override
public void onStart() {
Log.d(TAG, "Started command : ffmpeg " + command);
progressDialog.setMessage("Processing...");
progressDialog.show();
}
@Override
public void onFinish() {
Log.d(TAG, "Finished command : ffmpeg " + command);
progressDialog.dismiss();
}
});
} catch (FFmpegCommandAlreadyRunningException e) {
// do nothing for now
}
}
我想混合mp3和mp4文件并获取mp4视频并控制两者的音量,我想添加背景音乐,请帮助