multicast TS

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

multicast TS

Rand Graham-2

Hello,

 

Is there a way to output transport streams over multicast that does not involve rtp?

 

Thanks,

Rand


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

Re: multicast TS

Nicolas Dufresne-5
Le mercredi 11 mars 2020 à 11:45 -0400, Rand Graham a écrit :
> Hello,
>  
> Is there a way to output transport streams over multicast that does not
> involve rtp?

You can use the udpsink element directly.

... ! tsdemux alignment=7 ! udpsink host="<multicast dest>"

>  
> Thanks,
> Rand
> _______________________________________________
> 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: multicast TS

Rand Graham-2
Thanks.

So the output of the demux can go to a udpsink?

Can you explain what alignment=7 does?

Thanks,
Rand


-----Original Message-----
From: gstreamer-devel [mailto:[hidden email]] On Behalf Of Nicolas Dufresne
Sent: Wednesday, March 11, 2020 1:00 PM
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: multicast TS

Le mercredi 11 mars 2020 à 11:45 -0400, Rand Graham a écrit :
> Hello,
>  
> Is there a way to output transport streams over multicast that does
> not involve rtp?

You can use the udpsink element directly.

... ! tsdemux alignment=7 ! udpsink host="<multicast dest>"


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

RE: multicast TS

Rand Graham-2
In reply to this post by Nicolas Dufresne-5
Hello,

I am using gstreamer 1.14.1 and I see an error when using alignment = 7

gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tsdemux alignment=7   ! udpsink host="232.232.232.8" p
ort="1234" multicast-iface=eth2

0:00:00.009561490  6551      0x1d0a980 ERROR           GST_PIPELINE grammar.y:414:gst_parse_element_set: no property "alignment" in element "tsdemux0"
WARNING: erroneous pipeline: no property "alignment" in element "tsdemux0"

I am also using tcpdump to check for udp traffic as follows after starting a pipeline

tcpdump -B 65536 -i eth2 host 232.232.232.8

I notice that I see udp traffic using this command

env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink host="232.232.232ort="1234" multicast-iface=eth2

But not this one

env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink host="232.232.232ort="1234" multicast-iface=eth2  t. !  queue ! tsdemux ! ac3parse ! a52dec ! audioconvert ! lamemp3enc  ! shout2send ip=192.168.0.200 mount=/TV1

Do I have something wrong with my pipeline when using the tee?

Thanks,
Rand

-----Original Message-----
From: gstreamer-devel [mailto:[hidden email]] On Behalf Of Nicolas Dufresne
Sent: Wednesday, March 11, 2020 1:00 PM
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: multicast TS

Le mercredi 11 mars 2020 à 11:45 -0400, Rand Graham a écrit :
> Hello,
>  
> Is there a way to output transport streams over multicast that does
> not involve rtp?

You can use the udpsink element directly.

... ! tsdemux alignment=7 ! udpsink host="<multicast dest>"

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

Re: multicast TS

Nicolas Dufresne-5
Le mercredi 11 mars 2020 à 15:21 -0400, Rand Graham a écrit :
> Hello,
>
> I am using gstreamer 1.14.1 and I see an error when using alignment = 7
>
> gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tsdemux alignment=7   ! udpsink host="232.232.232.8" p
> ort="1234" multicast-iface=eth2

My typo, I meant to write mpegtsmux (muxer not the demuxer). See gst-inspect-1.0
for more details. Alignmnent controls how many TS packet will you'll have per
GstBuffer. This need to be adapted to your MTU, 7 is a common deafult, each MPEG
TS packet is 188 bytes.

You didn't mention in your mail that you wanted to passthrough data. If you
don't care about the network timeing, better just do:

  udpsrc ! udpsink sync=0

>
> 0:00:00.009561490  6551      0x1d0a980 ERROR           GST_PIPELINE grammar.y:414:gst_parse_element_set: no property "alignment" in element "tsdemux0"
> WARNING: erroneous pipeline: no property "alignment" in element "tsdemux0"
>
> I am also using tcpdump to check for udp traffic as follows after starting a pipeline
>
> tcpdump -B 65536 -i eth2 host 232.232.232.8
>
> I notice that I see udp traffic using this command
>
> env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink host="232.232.232ort="1234" multicast-iface=eth2
>
> But not this one
>
> env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink host="232.232.232ort="1234" multicast-iface=eth2  t. !  queue ! tsdemux ! ac3parse ! a52dec ! audioconvert ! lamemp3enc  ! shout2send ip=192.168.0.200 mount=/TV1

That will block until the shout server connects, might be never. You should use
async=TRUE on the udpsink, and probably sync=0 too.

>
> Do I have something wrong with my pipeline when using the tee?
>
> Thanks,
> Rand
>
> -----Original Message-----
> From: gstreamer-devel [mailto:[hidden email]]
> On Behalf Of Nicolas Dufresne
> Sent: Wednesday, March 11, 2020 1:00 PM
> To: Discussion of the development of and with GStreamer <
> [hidden email]>
> Subject: Re: multicast TS
>
> Le mercredi 11 mars 2020 à 11:45 -0400, Rand Graham a écrit :
> > Hello,
> >  
> > Is there a way to output transport streams over multicast that does
> > not involve rtp?
>
> You can use the udpsink element directly.
>
> ... ! tsdemux alignment=7 ! udpsink host="<multicast dest>"
>
> _______________________________________________
> 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: multicast TS

Rand Graham-2
Hello,

What I am trying to do right now is pass through the TS from one multicast group to another multicast group while transcoding the audio and sending to icecast.

I wanted to start with just sending a multicast stream.

I have found that changing the pipeline to this produces data on the output multicast address.

env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tee name=t t. ! queue ! tsdemux ! ac3parse ! a52dec !
audioconvert ! lamemp3enc  ! shout2send ip=192.168.0.200 mount=/TV1 t. ! queue ! udpsink host="232.232.232.8" port="1234" multicast-iface=eth2

As if listing the send to shoutcast first  and sending to udpsink last changed the behavior of the pipeline.

Right now the pipeline is working for me.

Thanks,
Rand



-----Original Message-----
From: gstreamer-devel [mailto:[hidden email]] On Behalf Of Nicolas Dufresne
Sent: Wednesday, March 11, 2020 3:51 PM
To: Discussion of the development of and with GStreamer <[hidden email]>
Subject: Re: multicast TS

Le mercredi 11 mars 2020 à 15:21 -0400, Rand Graham a écrit :
> Hello,
>
> I am using gstreamer 1.14.1 and I see an error when using alignment =
> 7
>
> gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234 multicast-iface=eth2 ! tsdemux alignment=7   ! udpsink host="232.232.232.8" p
> ort="1234" multicast-iface=eth2

My typo, I meant to write mpegtsmux (muxer not the demuxer). See gst-inspect-1.0 for more details. Alignmnent controls how many TS packet will you'll have per GstBuffer. This need to be adapted to your MTU, 7 is a common deafult, each MPEG TS packet is 188 bytes.

You didn't mention in your mail that you wanted to passthrough data. If you don't care about the network timeing, better just do:

  udpsrc ! udpsink sync=0

>
> 0:00:00.009561490  6551      0x1d0a980 ERROR           GST_PIPELINE grammar.y:414:gst_parse_element_set: no property "alignment" in element "tsdemux0"
> WARNING: erroneous pipeline: no property "alignment" in element "tsdemux0"
>
> I am also using tcpdump to check for udp traffic as follows after
> starting a pipeline
>
> tcpdump -B 65536 -i eth2 host 232.232.232.8
>
> I notice that I see udp traffic using this command
>
> env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234
> multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink
> host="232.232.232ort="1234" multicast-iface=eth2
>
> But not this one
>
> env GST_DEBUG=2 gst-launch-1.0 udpsrc uri=udp://231.231.231.8:1234
> multicast-iface=eth2 ! tee name=t t. ! queue ! udpsink
> host="232.232.232ort="1234" multicast-iface=eth2  t. !  queue !
> tsdemux ! ac3parse ! a52dec ! audioconvert ! lamemp3enc  ! shout2send
> ip=192.168.0.200 mount=/TV1

That will block until the shout server connects, might be never. You should use async=TRUE on the udpsink, and probably sync=0 too.

>
> Do I have something wrong with my pipeline when using the tee?
>
> Thanks,
> Rand
>
> -----Original Message-----
> From: gstreamer-devel
> [mailto:[hidden email]]
> On Behalf Of Nicolas Dufresne
> Sent: Wednesday, March 11, 2020 1:00 PM
> To: Discussion of the development of and with GStreamer <
> [hidden email]>
> Subject: Re: multicast TS
>
> Le mercredi 11 mars 2020 à 11:45 -0400, Rand Graham a écrit :
> > Hello,
> >  
> > Is there a way to output transport streams over multicast that does
> > not involve rtp?
>
> You can use the udpsink element directly.
>
> ... ! tsdemux alignment=7 ! udpsink host="<multicast dest>"
>
> _______________________________________________
> 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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel