bytedeco/javacv

FFmpegFrameRecorder after record video,video size is below origin video?

Open

#1,554 opened on Dec 18, 2020

View on GitHub
 (7 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
help wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

public static void recordVideo(InputStream inputStream1, String outputFilename) throws CreativeFactoryException {
        try {
            FFmpegFrameGrabber grabber1 = new FFmpegFrameGrabber(inputStream1);
            grabber1.start();

            int w = grabber1.getImageWidth();
            int h = grabber1.getImageHeight();


            FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputFilename, w, h, grabber1.getAudioChannels());

            initFrameRecorder(grabber1, recorder);
            recorder.start();

            while (true) {
                Frame frame = grabber1.grabFrame();
                if (frame == null) {
                    break;
                }
                recorder.record(frame);
            }

            grabber1.stop();
            recorder.stop();
        } catch (FrameGrabber.Exception | FrameRecorder.Exception e) {
            throw new CreativeFactoryException("Failed to concat video.", e);
        }
    }


private static void initFrameRecorder(FFmpegFrameGrabber grabber, FFmpegFrameRecorder recorder) {
        recorder.setVideoCodec(grabber.getVideoCodec());
        recorder.setAudioCodec(grabber.getAudioCodec());
        recorder.setFormat("mp4");
        recorder.setFrameRate(grabber.getFrameRate());

        recorder.setAspectRatio(grabber.getAspectRatio());
        recorder.setAudioBitrate(grabber.getAudioBitrate());
        // recorder.setAudioChannels(grabber.getAudioChannels());
        recorder.setVideoBitrate(grabber.getVideoBitrate());

        // 我的笔记本上只有这个值能work,原因不明
        recorder.setSampleFormat(8);
        // recorder.setSampleFormat(grabber.getSampleFormat());
        recorder.setSampleRate(grabber.getSampleRate());
    }

audioBitrate and videoBitrate is downing 1kbps

Contributor guide