AW: Video saved using mp4mux is not playable in android default media player

chakra wire.chakri at gmail.com
Fri Jun 7 08:14:14 UTC 2019


Thanks Nocolas,

The exact pipeline I have is as below,

*rtspsrc->rtph264depay->tee->queue->h264parse->splitmuxsink(mp4mux)*

Here tee is used to other use cases like live broadcast etc.

And properties of mp4mux and splitmuxsink as below,

    ///Create mp4mux
    tmp = g_strdup_printf("mp4mux-%s", "recorder");
    mp4mux = gst_element_factory_make("mp4mux", tmp);
    g_object_set(mp4mux, "reserved-bytes-per-sec", 5000, NULL);
    g_object_set(mp4mux, "reserved-max-duration", (2 * GST_SECOND), NULL);
    g_object_set(mp4mux, "reserved-moov-update-period", (30 * GST_SECOND),
NULL);
    g_free(tmp);

    //Create filesink
    tmp = g_strdup_printf("splitmuxsink-%s", "recorder");
    splitmuxsink = gst_element_factory_make("splitmuxsink", tmp);
    g_object_set(splitmuxsink, "muxer", mp4mux, NULL);
    g_object_set(splitmuxsink, "max-size-time", (30 * GST_SECOND), NULL);
    g_object_set(splitmuxsink, "use-robust-muxing", TRUE, NULL);
   g_signal_connect(splitmuxsink, "format-location-full",
                     G_CALLBACK(splitmuxsink_on_format_location_full),
NULL);/

*splitmuxsink_on_format_location_full* -> is a method to return new file
name as gchar* each time based on some increment counter

The issue exactly is On Google Chrome browser with HTML5 <video> tag, the
first file recorded in the above is playable and rest are not. Like for
example,

//mnt/av/testvideo-1__1887930741.mp4 -> Playing on Chrome  
/mnt/av/testvideo-2__1358928742.mp4 -> Not Playing on Chrome  
/mnt/av/testvideo-3__1125121133.mp4 -> Not Playing on Chrome  
/mnt/av/testvideo-4__1673889000.mp4 -> Not Playing on Chrome / 

I am not using explicit rtpjitterbuffer, its same as the one  default in
rtspsrc

My input is RTSP with H.264 Baseline 30 fps 3M bit rate


What I think is splitmuxsink/mp4mux is adding some negative start timestamp
on second mp4 file onward based on buffer time from udpsrc, when the file is
changed for 2nd file on wards.
But not sure of it exactly

Any suggestions to find exact root cause/fix would be helpful



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list