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

classic Classic list List threaded Threaded
16 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Daniel Rossi
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


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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

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

Nicolas Dufresne-5


Le jeu. 25 juill. 2019 22 h 25, Daniel Rossi <[hidden email]> 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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[2]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
I don't even know what streampay is.

I've now tried this command without the packet option as I see no documentation for that

gst-launch-1.0 -v filesrc location =sintel_lang.ts ! mpegtsparse ! srtsink uri=srt://:8888

I get this due to being forced to compile from sources and load it uninstalled.

[cerbero-linux-x86_64]gst-launch-1.0 -v filesrc location =sintel_lang.ts ! mpegtsparse ! srtsink uri=srt://:8888
0:00:00.037218464  2285 0x564f16bd6470 ERROR           GST_PIPELINE grammar.y:816:priv_gst_parse_yyparse: no element "mpegtsparse"
0:00:00.037359838  2285 0x564f16bd6470 ERROR           GST_PIPELINE grammar.y:901:priv_gst_parse_yyparse: link has no sink [source=@0x564f16be4300]
0:00:00.050644219  2285 0x564f16bd6470 ERROR           GST_PIPELINE grammar.y:901:priv_gst_parse_yyparse: link has no source [sink=@0x564f16c2d9a0]

------ Original Message ------
From: "Nicolas Dufresne" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[2]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
In reply to this post by Nicolas Dufresne-5
There is an element called tsparse, but same thing.

gst-launch-1.0 -v filesrc location =sintel_lang.ts ! tsparse ! srtsink uri=srt://:8888

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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re[2]: Send mpeg-ts file source to SRT. Error about payload

Nicolas Dufresne-5


Le jeu. 25 juill. 2019 23 h 30, Daniel Rossi <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[4]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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



------ Original Message ------
From: "Nicolas Dufresne" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re[4]: Send mpeg-ts file source to SRT. Error about payload

Nicolas Dufresne-5
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" <[hidden email]>
> To: "Daniel Rossi" <[hidden email]>
> Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> 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 <[hidden email]> 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" <[hidden email]>
> > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > 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 <[hidden email]> 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
> > > > > [hidden email]
> > > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re[6]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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"

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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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 mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re[6]: Send mpeg-ts file source to SRT. Error about payload

Nicolas Dufresne-5
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" <[hidden email]>
> To: "Daniel Rossi" <[hidden email]>
> Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> 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" <[hidden email]>
> > > To: "Daniel Rossi" <[hidden email]>
> > > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > > 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 <[hidden email]> 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" <[hidden email]>
> > > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > > 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 <[hidden email]> 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
> > > > > > > [hidden email]
> > > > > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re[8]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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 !

------ Original Message ------
From: "Nicolas Dufresne" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]
> > > > > > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re[8]: Send mpeg-ts file source to SRT. Error about payload

Nicolas Dufresne-5


Le lun. 29 juill. 2019 23 h 48, Daniel Rossi <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[10]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[11]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[12]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re[13]: Send mpeg-ts file source to SRT. Error about payload

Daniel Rossi
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 ?



------ Original Message ------
From: "Daniel Rossi" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re[13]: Send mpeg-ts file source to SRT. Error about payload

Nicolas Dufresne-5


Le dim. 4 août 2019 7:28 AM, Daniel Rossi <[hidden email]> 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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Nicolas Dufresne" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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 <[hidden email]> 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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
To: "Daniel Rossi" <[hidden email]>
Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
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" <[hidden email]>
> > To: "Daniel Rossi" <[hidden email]>
> > Cc: "Discussion of the development of and with GStreamer" <[hidden email]>
> > 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 <[hidden email]> 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" <[hidden email]>
> > > > To: "Daniel Rossi" <[hidden email]>; "Discussion of the development of and with GStreamer" <[hidden email]>
> > > > 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 <[hidden email]> 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
> > > > > > [hidden email]

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel