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

Thornton, Keith keith.thornton at zeiss.com
Fri Jun 7 10:53:56 UTC 2019


You could check this using ffprobe -show_frames | grep PTS_TIME on the files. It would be enough to output the first few frames

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <gstreamer-devel-bounces at lists.freedesktop.org> Im Auftrag von chakra
Gesendet: Freitag, 7. Juni 2019 10:14
An: gstreamer-devel at lists.freedesktop.org
Betreff: Re: AW: Video saved using mp4mux is not playable in android default media player

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/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list