mpegtspacketizer: Not enough information to calculate proper timestamp when playing radio stream
Hi,
I am on Debian 9.5 using GStreamer 1.10.4 and was trying to get the following radio stream URI to play:
http://kong.kbskme.gscdn.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3c659434ccaf31a3e487c7ac3f91273d138c6da2308db4ff6d84653b703034a987d8defc35733864acfc38d5dcb24358235664fa74b665a0aa1808b70d504d61efebb17d2c38ff66efc58c0f860e1f43
This is what the command line output is when using gst-launch-1.0 -v playbin3:
umagi@debian:~$ gst-launch-1.0 -v playbin3 uri=http://kong.kbskme.gscdn.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3c659434ccaf31a3e487c7ac3f91273d138c6da2308db4ff6d84653b703034a987d8defc35733864acfc38d5dcb24358235664fa74b665a0aa1808b70d504d61efebb17d2c38ff66efc58c0f860e1f43
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: ring-buffer-max-size = 0
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: buffer-size = -1
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: buffer-duration = -1
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: use-buffering = false
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: download = false
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: uri = http://kong.kbskme.gscdn.com/1fm/_definst_/1fm.stream/playlist.m3u8?_lsu_sa_=3c659434ccaf31a3e487c7ac3f91273d138c6da2308db4ff6d84653b703034a987d8defc35733864acfc38d5dcb24358235664fa74b665a0aa1808b70d504d61efebb17d2c38ff66efc58c0f860e1f43
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: connection-speed = 0
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0: source = "\(GstSoupHTTPSrc\)\ source"
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelement0.GstPad:src: caps = application/x-hls
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:sink: caps = application/x-hls
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0/GstHLSDemux:hlsdemux0.GstPad:src_0: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-1.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0/GstQueue2:queue2-1.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstGhostPad:sink.GstProxyPad:proxypad3: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTSDemux:tsdemux0.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind.GstPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0.GstGhostPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0.GstGhostPad:sink: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstURISourceBin:urisourcebin0.GstGhostPad:src_0.GstProxyPad:proxypad2: caps = video/mpegts, systemstream=(boolean)true, packetsize=(int)188
/GstPlayBin3:playbin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstAacParse:aacparse0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)2, stream-format=(string)adts
buffering... 0%
But nothing happens. Since this kind of URI plays OK in VLC this does not seem to be a server-side issue.
Following the suggestions and help of Philippe Normand to my post on this issue on the GStreamer-devel mail list read post, I added the gst.log and the stream.ts capture file in attach.
The gst.log file shows a flurry of warnings of the kind:
0:00:00.287885677 6377 0x555e54214630 WARN mpegtspacketizer mpegtspacketizer.c:2331:mpegts_packetizer_pts_to_ts: Not enough information to calculate proper timestamp
Can you have a check? Thanks!
Edited by dirac bracket