bytedeco/javacv

Filled side_ data not received correctly(javacv 1.5.9)

Open

#2.138 aberto em 5 de dez. de 2023

Ver no GitHub
 (8 comments) (0 reactions) (0 assignees)Java (1.583 forks)batch import
enhancementhelp wantedquestion

Métricas do repositório

Stars
 (6.985 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

my app:project A send side_data To B I used mediamtx as the RTSP server
java code: A:

        private static String inputUrl = "rtsp://localhost:8554/stream";
        private static String outputUrl = "rtsp://localhost:8554/stream1";
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputUrl);
        grabber.setOption("rtsp_transport", "tcp");

        grabber.start();
        FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(outputUrl, grabber.getImageWidth(), grabber.getImageHeight());
        recorder.setVideoCodec(AV_CODEC_ID_H264);
        recorder.setOption("rtsp_transport", "tcp");
        recorder.setPixelFormat(AV_PIX_FMT_YUV420P);
        recorder.setFormat("rtsp");
        recorder.start(grabber.getFormatContext());
        AVPacket packet = null;
        while ((packet = grabber.grabPacket()) != null) {

            BytePointer retrievedData = av_packet_new_side_data(packet, AV_PKT_DATA_NEW_EXTRADATA, extradata.length);
            retrievedData.put(seiBytes,0,seiBytes.length);
            // Consistent with the 'extradata' filled in
            System.out.println(Arrays.toString(av_packet_get_side_data(packet, AV_PKT_DATA_NEW_EXTRADATA, new SizeTPointer()).getStringBytes()));
            recorder.recordPacket(packet);
            avcodec.av_packet_unref(packet);
        }

B:

        private static String inputUrl = "rtsp://localhost:8554/stream1";
        FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputUrl);
        grabber.setOption("rtsp_transport", "tcp");
        // retrievedData is null
        BytePointer retrievedData = av_packet_get_side_data(avPacket, AV_PKT_DATA_NEW_EXTRADATA, new SizeTPointer());
        

How should I modify the code so that the A can transmit the side correctly_ Data to B

Guia do colaborador