Skip to content

JVM crash when set FFmpegFrameGrabber's image mode to RAW #2351

@kingw0

Description

@kingw0

I set FFmpegFrameGrabber image mode to raw to avoid recorder call sws_scale when input video's pixel format is yuv420. When i execute code below, the jvm crashed when calling avcodec_send_frame in recordImage function of class FFmpegFrameRecorder. Is there something wrong with my code or is it a limitation of javacv?

        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(src);
        grabber.setImageMode(FrameGrabber.ImageMode.RAW);
        grabber.start();

        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(dst, grabber.getImageWidth(), grabber.getImageHeight()
            , grabber.getAudioChannels());

        recorder.setFormat("hls");
        recorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
        recorder.setFrameRate(grabber.getFrameRate());
        recorder.setPixelFormat(AV_PIX_FMT_YUV420P); 
        recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);
        recorder.setSampleFormat(avutil.AV_SAMPLE_FMT_FLTP);
        recorder.setSampleRate(grabber.getSampleRate());

        recorder.setVideoOption("crf", "24");
        recorder.setVideoOption("preset", "veryfast"); 

        recorder.setOption("hls_list_size", "0");
        recorder.setOption("hls_time", "15");
        recorder.setOption("hls_playlist_type", "vod");

        recorder.start();

        try {
            Frame frame;

            while ((frame = grabber.grab()) != null) {
                if (frame.type == Frame.Type.VIDEO || frame.type == Frame.Type.AUDIO) {
                    recorder.record(frame);
                }
            }

            System.out.println(System.currentTimeMillis() - begin);
        } finally {
            grabber.close();

            recorder.close();
        }

hs_err_pid63236.log

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions