Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi electroteque at gmail.com
Wed Jul 31 14:17:57 UTC 2019


Sorry mate I am still fine tuning mpegts sending to wowza, and consuming 
both audio and video on a listener receiver eventually from Wowza.

I have made contact to libsrt about the errors.

I tried using UDP. I get no error. but calling and listening locally, it 
skips frames and lots of blocky picture.

gst-launch-1.0 filesrc location=sintel_lang.ts ! tsparse 
set-timestamps=1 smoothing-latency=40000000 ! chopmydata step-size=188 
min-size=188 max-size=1316 ! udpsink host=127.0.0.1 port=8081

gst-play-1.0 udp://127.0.0.1:8081

Is there a better pipeline for either loading mpeg-ts or muxing to 
mpeg-ts from h264. I've seen nothing much out there. Most examples just 
using the videotest source ! I've seen so many cheatsheets but nothing 
for what I need to do.

I just need a test caller for Wowza ingest to confirm if it sends 
multiple tracks correctly. but my production requirements is consuming a 
Wowza SRT stream target which is mpeg-ts using a receiver listener. My 
tests have been unstable output so far. locally or remotely.




------ Original Message ------
From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
To: "Daniel Rossi" <electroteque at gmail.com>
Cc: "Discussion of the development of and with GStreamer" 
<gstreamer-devel at lists.freedesktop.org>
Sent: 7/30/2019 9:10:25 PM
Subject: Re: Re[8]: Send mpeg-ts file source to SRT. Error about payload

>
>
>Le lun. 29 juill. 2019 23 h 48, Daniel Rossi <electroteque at gmail.com> a 
>écrit :
>>Thankyou. So confirming chopmydata is like "pkt_size=1316" ? It is an 
>>obvious libsrt output, so I will have to take it up with them !
>
>Yes.
>
>>
>>------ Original Message ------
>>From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
>>To: "Daniel Rossi" <electroteque at gmail.com>
>>Cc: "Discussion of the development of and with GStreamer" 
>><gstreamer-devel at lists.freedesktop.org>
>>Sent: 7/30/2019 2:23:19 AM
>>Subject: Re: Re[6]: Send mpeg-ts file source to SRT. Error about 
>>payload
>>
>>>Le lundi 29 juillet 2019 à 15:41 +0000, Daniel Rossi a écrit :
>>>>It seems it needs this, which possibly matches ffmpeg's pkt_size 
>>>>flag ? ie udp://192.168.4.43:9999?pkt_size=1316
>>>>
>>>>
>>>>"chopmydata step-size=188 min-size=188 max-size=1316"
>>>>
>>>>I still get unstable playback locally
>>>>
>>>>on the sender console
>>>>
>>>>"10:43:54.198464/mpegtsparse2-0:*E: SRT.d: SND-DROPPED 41 packets - 
>>>>lost delaying for 1038ms"
>>>>
>>>>on the receiver console
>>>>
>>>>"10:30:08.957619*E: SRT.c: %229645152:No room to store incoming 
>>>>packet: offset=8907 avail=6437 ack.seq=59978716 pkt.seq=59987623 
>>>>rcv-remain=1754"
>>>>
>>>>I am getting the same errors eventually for this command.It crashes 
>>>>eventually
>>>>
>>>>gst-launch-1.0 videotestsrc ! video/x-raw, height=360, width=640 ! 
>>>>videoconvert ! x264enc tune=zerolatency ! video/x-h264, profile=high 
>>>>! mpegtsmux ! srtsink uri="srt://192.168.4.43:8081"
>>>
>>>You should add is-live=1 to videotestsrc, though I agree something
>>>seems not too robust here.
>>>
>>>>
>>>>Playing it back in VLC, the picture has artifacts and it's skipping. 
>>>>No logs on the sender however. It's for udpsink also. So might be my 
>>>>source file ? It was converted with ffmpeg first
>>>>
>>>>ffmpeg -i sintel_lang_2000k.mp4 -codec:v copy -codec:a copy -map 0 
>>>>-streamid 0:50 -streamid 1:52 -streamid 2:53 -streamid 3:54 
>>>>-streamid 4:55 -streamid 5:56 -f mpegts sintel_lang.ts
>>>>
>>>>My proof of concept seems to work however. PID's of the audio are 
>>>>sent with the stream for individual ingesting in Wowza over SRT.
>>>>
>>>>Is there specific documenation for sending mpeg-ts or converting 
>>>>from h264 first ? With ffmpeg I have been doing this for my udp 
>>>>specific tests
>>>>
>>>>ffmpeg -re -i sintel_lang_2000k.mp4 -codec copy -bsf:v 
>>>>h264_mp4toannexb -map 0 -streamid 0:50 -streamid 1:52 -streamid 2:53 
>>>>-streamid 3:54 -streamid 4:55 -streamid 5:56 -f mpegts 
>>>>udp://192.168.4.43:10000?pkt_size=1316
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>------ Original Message ------
>>>>From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
>>>>To: "Daniel Rossi" <electroteque at gmail.com>
>>>>Cc: "Discussion of the development of and with GStreamer" 
>>>><gstreamer-devel at lists.freedesktop.org>
>>>>Sent: 7/27/2019 3:48:52 AM
>>>>Subject: Re: Re[4]: Send mpeg-ts file source to SRT. Error about 
>>>>payload
>>>>
>>>> > Le vendredi 26 juillet 2019 à 16:37 +0000, Daniel Rossi a écrit :
>>>> > > according to gst-inspect-1.0 filesrc
>>>> > >
>>>> > > I have a blocksize option. Do I set this to 1316?
>>>> > >
>>>> > > inspecting tsparse doesn't say much, including command usage.
>>>> > >
>>>> > > gst-launch-1.0 -v filesrc location=sintel_lang.ts blocksize=1316 
>>>>! tsparse ! srtsink uri=srt://:8888/
>>>> > >
>>>> > > and the receiver
>>>> > >
>>>> > > gst-launch-1.0 srtsrc uri=srt://192.168.4.55:8888 ! decodebin ! 
>>>>autovideosink
>>>> > >
>>>> > > I get these errors.
>>>> > >
>>>> > > 02:34:56.655957*E: SRT.c: LiveSmoother: payload size: 18800 
>>>>exceeds maximum allowed 1316
>>>> >
>>>> >
>>>> > Apparently the parser ignores the input size, just like you 
>>>>ignored my
>>>> > recommendation for tsparse configuration. Anyway ...
>>>> >
>>>> > # Transmitter
>>>> > gst-launch-1.0 filesrc location=my.ts ! \
>>>> > tsparse set-timestamps=1 smoothing-latency=40000000 ! \
>>>> > chopmydata step-size=188 min-size=188 max-size=1316 ! \
>>>> > srtsink uri=srt://:8888
>>>> >
>>>> > # Receiver / Player
>>>> > gst-play-1.0 srt://127.0.0.1:8888
>>>> > >
>>>> > >
>>>> > >
>>>> > > ------ Original Message ------
>>>> > > From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
>>>> > > To: "Daniel Rossi" <electroteque at gmail.com>
>>>> > > Cc: "Discussion of the development of and with GStreamer" 
>>>><gstreamer-devel at lists.freedesktop.org>
>>>> > > Sent: 7/26/2019 10:03:13 PM
>>>> > > Subject: Re: Re[2]: Send mpeg-ts file source to SRT. Error about 
>>>>payload
>>>> > >
>>>> > > >
>>>> > > > Le jeu. 25 juill. 2019 23 h 30, Daniel Rossi 
>>>><electroteque at gmail.com> a écrit :
>>>> > > > > There is an element called tsparse, but same thing.
>>>> > > > >
>>>> > > > > gst-launch-1.0 -v filesrc location =sintel_lang.ts ! tsparse 
>>>>! srtsink uri=srt://:8888
>>>> > > >
>>>> > > > You should use gst-inspect-1.0 to learn about the 
>>>>configuration for filesrc and tsparse (I'm typing this from memory, 
>>>>and there exist in usage of mpegts and ts as element name prefix). 
>>>>File source has an option to configure the read size, these needs to 
>>>>be multiple of 188 and max to 1316. The ts parse as an option to add 
>>>>and smooth timestamp, these need to be configured.
>>>> > > >
>>>> > > > > my pullside for the test is
>>>> > > > >
>>>> > > > > gst-launch-1.0 srtsrc uri=srt://192.168.4.55:8888 ! 
>>>>decodebin ! autovideosink
>>>> > > > >
>>>> > > > > ------ Original Message ------
>>>> > > > > From: "Nicolas Dufresne" <nicolas at ndufresne.ca>
>>>> > > > > To: "Daniel Rossi" <electroteque at gmail.com>; "Discussion of 
>>>>the development of and with GStreamer" 
>>>><gstreamer-devel at lists.freedesktop.org>
>>>> > > > > Sent: 7/26/2019 1:19:54 PM
>>>> > > > > Subject: Re: Send mpeg-ts file source to SRT. Error about 
>>>>payload
>>>> > > > >
>>>> > > > > >
>>>> > > > > > Le jeu. 25 juill. 2019 22 h 25, Daniel Rossi 
>>>><electroteque at gmail.com> a écrit :
>>>> > > > > > > I'm trying to send an mpeg-ts source over SRT for multi 
>>>>language track testing.
>>>> > > > > > >
>>>> > > > > > > When pulling this stream I am getting an internal error.
>>>> > > > > > >
>>>> > > > > > > gst-launch-1.0 -v filesrc location =sintel_lang.ts ! 
>>>>rtpstreampay ! srtsink uri=srt://:8888/
>>>> > > > > > > Setting pipeline to PAUSED ...
>>>> > > > > > > Pipeline is PREROLLING ...
>>>> > > > > > > Pipeline is PREROLLED ...
>>>> > > > > > > Setting pipeline to PLAYING ...
>>>> > > > > > > New clock: GstSystemClock
>>>> > > > > > > 12:13:33.532337/filesrc0:src*E: SRT.c: LiveSmoother: 
>>>>payload size: 4098 exceeds maximum allowed 1316
>>>> > > > > >
>>>> > > > > > a) why do you use stream pay ?
>>>> > > > > > b) you might want to use mpegtsparse to timestamp your 
>>>>stream
>>>> > > > > > c) configure filesrc to read 1316 bytes to fix this error.
>>>> > > > > >
>>>> > > > > > >
>>>> > > > > > > Is there also a way to pipeline a h264 file with multi 
>>>>audio tracks through mpeg-ts and set PID numbers for each track 
>>>>instead of outputting to TS via ffmpeg first ?
>>>> > > > > > > _______________________________________________
>>>> > > > > > > gstreamer-devel mailing list
>>>> > > > > > > gstreamer-devel at lists.freedesktop.org
>>>> > > > > > > 
>>>>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190731/cafa6542/attachment-0001.html>


More information about the gstreamer-devel mailing list