2 GOP delay when muxing mp4

Andrew Panteleyev insonifi at gmail.com
Tue Apr 2 05:05:53 UTC 2019


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190402/698fb03c/attachment.html>


More information about the gstreamer-devel mailing list