bytedeco/javacv

When I starting HLS with some Video avformat_write_header error() error -22: Could not write header to 'C:\Users\xxx\Desktop\test_resource\result\_packetRecord.m3u8'

Open

#1,506 opened on Sep 11, 2020

View on GitHub
 (8 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

this is my code

    public static void packetRecord(String inputFile, String outputFile) throws FrameGrabber.Exception, FrameRecorder.Exception {

        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputFile);
        grabber.start();

        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputFile, grabber.getImageWidth(),
                grabber.getImageHeight(), grabber.getAudioChannels());
        recorder.setFormat("hls");
        recorder.setOption("hls_list_size", "0");
        recorder.setOption("hls_time", "12");
        recorder.start(grabber.getFormatContext());

        AVPacket packet;
        long t1 = System.currentTimeMillis();
        while ((packet = grabber.grabPacket()) != null) {
            recorder.recordPacket(packet);
            if ((System.currentTimeMillis() - t1) > RECORD_LENGTH) {
                break;
            }
        }
        grabber.stop();
        recorder.stop();
    }

this is console log

Exception in thread "main" org.bytedeco.javacv.FrameRecorder$Exception: avformat_write_header error() error -22: Could not write header to 'C:\Users\xxx\Desktop\test_resource\result\_packetRecord.m3u'
	at org.bytedeco.javacv.FFmpegFrameRecorder.startUnsafe(FFmpegFrameRecorder.java:900)
	at org.bytedeco.javacv.FFmpegFrameRecorder.start(FFmpegFrameRecorder.java:406)
	at org.bytedeco.javacv.FFmpegFrameRecorder.start(FFmpegFrameRecorder.java:401)
	at PacketRecorderTest.packetRecord(PacketRecorderTest.java:37)
	at PacketRecorderTest.main(PacketRecorderTest.java:23)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\Users\Liang Jian\Desktop\test_resource\2e6851044c4100e04e018aa7a4e68547.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.58.101
  Duration: 00:00:07.04, start: 0.000000, bitrate: 366 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x512 [SAR 86:59 DAR 215:118], 324 kb/s, 24 fps, 24 tbr, 12288 tbn, 96 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 48 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
[hls @ 0000000023597980] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
[hls @ 0000000023597980] Aspect ratio mismatch between muxer (1/1) and encoder layer (86/59)

what need i do for my code ?

Contributor guide