2 GOP delay when muxing mp4

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

2 GOP delay when muxing mp4

Andrew Panteleyev
Good day.
I try use pipeline for creation of mp4 container from custom h264 data. All works good, except key frames only stream with long interval between I-frames. There is a very big delay when displaying (about 2 key frame interval).

Pipeline:
appsrc -> h264parse ->  mp4mux -> appsink

appsrc has "is-live" option set to TRUE;
h264parse - "config-interval" set to -1;
mp4mux - "fragment-duration" set to 100 and "faststart" set to 1;
appsink - "emit-signals" set to TRUE, "max-buffers" set to 100 and "drop" set to TRUE;

Below is excerpt from logs, where "Push sample..." show my data:

<--------->

~#[ 3024]; 2019-04-01; 18:06:40.473; INFO; 0; /MP4Pipeline/App/: Push sample with time: 20190401T150640.373000
.....
~#[ 4484]; 2019-04-01; 18:06:40.474; WARN; 0; /MP4Pipeline/App/GStreamer: basesink gstbasesink.c:1218:gst_base_sink_query_latency:<mixerSink> warning: Pipeline construction is invalid, please add queues.
~#[ 4484]; 2019-04-01; 18:06:40.474; WARN; 0; /MP4Pipeline/App/GStreamer: basesink gstbasesink.c:1218:gst_base_sink_query_latency:<mixerSink> warning: Not enough buffering available for the processing deadline o
f 0:00:00.020000000, add enough queues to buffer 0:00:00.020000000 additional data. Shortening processing latency to 0:00:00.000000000.
~#[ 4484]; 2019-04-01; 18:06:40.474; INFO; 0; /MP4Pipeline/App/GStreamer: GST_ERROR_SYSTEM gstelement.c:2141:gst_element_message_full_with_details:<mixerSink> posting message: Pipeline construction is invalid, pl
ease add queues.
~#[ 4484]; 2019-04-01; 18:06:40.475; INFO; 0; /MP4Pipeline/App/GStreamer: GST_ERROR_SYSTEM gstelement.c:2168:gst_element_message_full_with_details:<mixerSink> posted warning message: Pipeline construction is inva
lid, please add queues.
~#[ 4484]; 2019-04-01; 18:06:40.475; INFO; 0; /MP4Pipeline/App/GStreamer: GST_EVENT gstevent.c:1406:gst_event_new_latency:(NULL) creating latency event 0:00:00.033366666
~#[ 4484]; 2019-04-01; 18:06:40.475; INFO; 0; /MP4Pipeline/App/GStreamer: bin gstbin.c:2780:gst_bin_do_latency_func:<pipeline> configured latency of 0:00:00.033366666
.....
~#[ 3024]; 2019-04-01; 18:06:48.815; INFO; 0; /MP4Pipeline/App/: Push sample with time: 20190401T150648.715000
....
~#[ 3024]; 2019-04-01; 18:06:57.156; INFO; 0; /MP4Pipeline/App/: Push sample with time: 20190401T150657.056000

<--------->

Here complete mp4 segment will be ready. So it takes about 17 seconds to get first mp4 segment.
How can I reduce waiting time?

Regards,
Andrey

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel