我正在开发一个捕捉Android应用的视频。 我的目标是将捕获的视频文件与给定的mp3音频文件合并。我正在使用FFmpeg合并文件。捕获是使用Android.Media Framework完成的。 如果我现在尝试合并这里描述的文件:
How to multiplex mp3 and mp4 files in Android
我收到错误:avcodec_open2() error -1: Could not open video codec.
有没有办法在FFmpeg的可读版本中转换捕获的视频文件? 或者还有其他方法可以解决这个问题吗?
我不想用FFmpeg拍摄视频,因为这将是非常复杂而且不干净(对于我的观点)
希望任何身体都可以帮助:) 提前谢谢。
我像在android DOC中那样捕获:
http://developer.android.com/guide/topics/media/camera.html
这就是我尝试合并的方式
FrameGrabber grabber1 = new FFmpegFrameGrabber(videoPath);
FrameGrabber grabber2 = new FFmpegFrameGrabber(audioPath);
grabber1.start();
grabber2.start();
FrameRecorder recorder = new FFmpegFrameRecorder(OutputPath,grabber1.getImageWidth(), grabber1.getImageHeight(), 2);
recorder.setFormat("mp4");
recorder.setVideoQuality(1);
recorder.setFrameRate(grabber1.getFrameRate());
recorder.setSampleRate(grabber2.getSampleRate());
recorder.start();
Frame frame1, frame2 = null;
long timestamp = -2;
int count = 0;
boolean isFirstTime = false;
boolean isFirstCheck = true;
while ((frame1 = grabber1.grabFrame())!=null) {
//frame1 = grabber1.grabFrame();
frame2 = grabber2.grabFrame();
recorder.record(frame1);
recorder.record(frame2);
}
recorder.stop();
grabber1.stop();
grabber2.stop();
}catch (org.bytedeco.javacv.FrameGrabber.Exception e) {
e.printStackTrace();
} catch (Exception e1) {
e1.printStackTrace();
}