Java 使用FFmpeg在Android上合并mp4和mp3
我正在开发一个视频捕捉Android应用程序。 我的目标是将捕获的视频文件与给定的mp3音频文件合并。我正在使用FFmpeg合并文件。捕获是通过Android.Media框架完成的。 如果我现在尝试合并如下所述的文件: 我收到错误:Java 使用FFmpeg在Android上合并mp4和mp3,java,android,video,ffmpeg,video-capture,Java,Android,Video,Ffmpeg,Video Capture,我正在开发一个视频捕捉Android应用程序。 我的目标是将捕获的视频文件与给定的mp3音频文件合并。我正在使用FFmpeg合并文件。捕获是通过Android.Media框架完成的。 如果我现在尝试合并如下所述的文件: 我收到错误:avcodec\u open2()错误-1:无法打开视频编解码器。 有没有办法将捕获的视频文件转换为FFmpeg的可读版本? 或者有没有其他办法来解决这个问题 我不想用FFmpeg捕捉视频,因为这将非常复杂而且不干净(我认为) 希望任何机构都能提供帮助:) 提前谢谢
avcodec\u open2()错误-1:无法打开视频编解码器。
有没有办法将捕获的视频文件转换为FFmpeg的可读版本?
或者有没有其他办法来解决这个问题
我不想用FFmpeg捕捉视频,因为这将非常复杂而且不干净(我认为)
希望任何机构都能提供帮助:)
提前谢谢
我像android文档中支持的那样捕获:
这就是我尝试合并的方式
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();
}