tsdemux doesn't handle streams without PTS/DTS timestamps, on iOS

Edward Hervey bilboed at bilboed.com
Tue Jul 28 06:09:33 PDT 2015


Hi,

  There's *no* PCR information whatsoever in that stream. So specifying
0x1fff for the PCR PID *is* the proper thing to do according to the
specs.

   We just need to fix the ts elements to cope without PCR present.
Maybe just take the initial/earliest DTS value as the base PCR value.

    Edward

On Mon, 2015-07-27 at 19:02 +0100, Nuno Mota wrote:
> For enhancement purposes, it could assume video PID as PCR PID, but 
> still shout a warning log.
> 
> "Invalid PCR PID (0x1fff). Trying video PID instead."
> 
> 2015-07-27 15:04 GMT+01:00 Edward Hervey <bilboed at bilboed.com>:
> > Hi,
> > 
> >   No idea why you think there's no PTS in the PES header. There 
> > are.
> > It's just that the PCR PID reported by the PMT is invalid (0x1fff, 
> > the
> > PID reserved for NULL/padding packets).
> > 
> >   => The problem is lack of PCR values, not lack of PTS/DTS
> > 
> >   Can you file a bug with all this information here :
> > https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer
> > 
> > On Mon, 2015-07-27 at 11:49 +0200, Dmytro Kabyshev wrote:
> > > Hi,
> > >
> > > I'm trying to make GoPro 4 live preview (mpegts stream) to work 
> > with
> > > GStreamer and faced with an issue, that tsdemux doesn't push 
> > packet
> > > further, because it expects PTS/DTS timestamps. On iOS.
> > > The problem is, GoPro 4 doesn't set those in PES header. I'm not
> > > quite sure why or whether it is correct behaviour for mpeg ts 
> > stream
> > > broadcaster. But the thing is, I was able to play this stream 
> > with
> > > ffplay. I dind't go further in comparing ffmpeg mpegts demux with
> > > tsdemux. Maybe there's some well know limitation in GStreamer.
> > > I would really appriciate any help on this. I'll attach 
> > everything I
> > > have:
> > >
> > > 1. gopro.pcap - mpegts UDP steam from GoPro Hero 4 Silver
> > > https://www.dropbox.com/s/fskjgnuxx496ako/gopro.pcap?dl=0
> > > 2. gopro_stream_conf - mpegst stream config (from ffprobe)
> > > https://www.dropbox.com/s/vjrsiapwq4goyqk/gopro_stream_conf?dl=0
> > > 3. gopro_gst_log - filtered debug log for tsdemux and mpegtsbase
> > > https://www.dropbox.com/s/4e9r5hiziim4sb5/gopro_gst_log?dl=0
> > >
> > > As for Pipeline, it doesn't really matter, I was testing the
> > > simpliest:
> > >
> > > udpsrc port=8554 buffer-size=5000 ! tsdemux name=demux
> > > demux.video_1011 ! queue ! decodebin ! autovideosink 
> > demux.video_0200
> > > ! fakesink demux.audio_1100 ! fakesink
> > >
> > > How to simulate GoPro mpegts:
> > >
> > > 1. Install http://tcpreplay.synfin.net/
> > > 2. Download gopro.pcap
> > > 3. Get sMAC of source (machine which is going to stream) and
> > > destination dMAC (who's going to receive stream). For test 
> > purpose it
> > > is going to be the same machine (loopback test):
> > > > tcprewrite --enet-smac=e4:ce:8f:3c:63:b2 --enet
> > > -dmac=e4:ce:8f:3c:63:b2 --infile=gopro.pcap --outfile=output.pcap
> > > --enet-smac our sMAC
> > > --enet-dmac our dMAC
> > >
> > > 4. Generate cache:
> > > > tcpprep --auto=bridge --pcap=output.pcap -
> > -cachefile=input.cache
> > >
> > > 5. Replays IPs. Again we need sIP (machine which is going to 
> > stream)
> > > and dIP who's going to receive stream. For test purpose it is 
> > going
> > > to be the same machine (loopback test):
> > > > tcprewrite --endpoints=192.168.14.137:192.168.14.137 -
> > > -cachefile=input.cache --infile=output.pcap -
> > -outfile=output2.pcap -
> > > -skipbroadcast
> > > formats for IPs: sIP:dIP
> > >
> > > 6. Now we have output2.pcap which is ready to playback
> > >
> > > 7. sudo tcpreplay --intf1=en1 output2.pcap
> > > en1 - network interface
> > >
> > > 8. Finaly. You could verify the stream with: ffplay udp://:8554
> > >
> > > Regards,
> > > Dmytro Kabyshev
> > > _______________________________________________
> > > gstreamer-devel mailing list
> > > gstreamer-devel at lists.freedesktop.org
> > > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > --
> > Edward Hervey
> > bilboed at bilboed.com
> > 
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> > 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-- 
Edward Hervey
bilboed at bilboed.com



More information about the gstreamer-devel mailing list