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

Nicolas Dufresne nicolas at ndufresne.ca
Sun Aug 4 13:44:58 UTC 2019


Le dim. 4 août 2019 7:28 AM, Daniel Rossi <electroteque at gmail.com> a écrit :

> I believe there is bugs with gstreamer. You can see my comment here, I was
> able to stream locally find using ffmpeg as the caller, and gstreamer as
> the receiver. If I use gstreamer as the caller I get failures. Its taken me
> a while to get ffmpeg compiled to test it, but was easier than compiling
> gstreamer.
>
> https://github.com/Haivision/srt/issues/659#issuecomment-517934242
>
> I noticed in the source code, blocking mode is hardcoded, and I see no
> property to set receiver buffer.
>
> Do I file a bug ?
>

Sure, in this context I had a hard time to get this element to do something
useful (for the second time in fact) and you have a use case which does not
work. There is clearly something odd, miss-implemented in there. Just make
sure to describe your use case clearly.





>
>
> ------ Original Message ------
> From: "Daniel Rossi" <electroteque at gmail.com>
> To: "Nicolas Dufresne" <nicolas at ndufresne.ca>
> Cc: "Discussion of the development of and with GStreamer" <
> gstreamer-devel at lists.freedesktop.org>
> Sent: 8/2/2019 1:38:18 AM
> Subject: Re[12]: Send mpeg-ts file source to SRT. Error about payload
>
> Are these params currently supported on the uri's ?
>
> https://github.com/Haivision/srt/issues/659#issuecomment-516922869
> https://github.com/Haivision/srt/issues/445
>
> I see no reference in the sources about srt-recv:{INT, 0...}
>
>
>
> ------ Original Message ------
> From: "Daniel Rossi" <electroteque at gmail.com>
> To: "Nicolas Dufresne" <nicolas at ndufresne.ca>
> Cc: "Discussion of the development of and with GStreamer" <
> gstreamer-devel at lists.freedesktop.org>
> Sent: 8/1/2019 12:29:54 AM
> Subject: Re[11]: Send mpeg-ts file source to SRT. Error about payload
>
> This was their response in regards to a receiver buffer size. I have not
> touched libsrt before so I would have no idea what this means
>
> https://github.com/Haivision/srt/issues/659#issuecomment-516865921
>
> ------ Original Message ------
> From: "Daniel Rossi" <electroteque at gmail.com>
> To: "Nicolas Dufresne" <nicolas at ndufresne.ca>
> Cc: "Discussion of the development of and with GStreamer" <
> gstreamer-devel at lists.freedesktop.org>
> Sent: 8/1/2019 12:17:57 AM
> Subject: Re[10]: Send mpeg-ts file source to SRT. Error about payload
>
> 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/20190804/83f20dc9/attachment-0001.html>


More information about the gstreamer-devel mailing list