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