Java 使用FFmpeg在Android上合并mp4和mp3

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捕捉视频,因为这将非常复杂而且不干净(我认为) 希望任何机构都能提供帮助:) 提前谢谢

我正在开发一个视频捕捉Android应用程序。 我的目标是将捕获的视频文件与给定的mp3音频文件合并。我正在使用FFmpeg合并文件。捕获是通过Android.Media框架完成的。 如果我现在尝试合并如下所述的文件:

我收到错误:
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();
    }