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