使用FFmpeg在Android上合并mp4和mp3

时间:2015-01-04 19:14:15

标签: java android video ffmpeg video-capture

我正在开发一个捕捉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();
    }       

0 个答案:

没有答案