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 2020年9月11日

GitHub で見る
 (8 comments) (0 reactions) (0 assignees)Java (1,583 forks)batch import
help wantedquestion

Repository metrics

Stars
 (6,985 stars)
PR merge metrics
 (30d に merged PR はありません)

説明

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 ?

コントリビューターガイド