Error while sending fb frames using udpsink element

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

Error while sending fb frames using udpsink element

Gokul Vellingiri
The following pipeline works fine while trying to display rfbsrc from my VNC Server to Linux PC:

gst-launch-1.0 rfbsrc host=xxx.xxx.x.x port=xxxx incremental=false ! video/x-raw,format=xRGB ! videoconvert ! autovideosink


I was able to see my framebuffers successfully. This is fine. But when i try to send the sink data to other pc client using udpsink element resulted in the following error message in command line:

gst-launch-1.0 rfbsrc host=xxx.xxx.x.x port=xxxx incremental=false ! video/x-raw,format=xRGB ! videoconvert ! udpsink port=**** host=***.***.*.***

I
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long
WARNING: from element /GstPipeline:pipeline0/GstUDPSink:udpsink0: Attempting to send a UDP packet larger than maximum size (2621440 > 65507)
Additional debug info:
gstmultiudpsink.c(598): gst_multiudpsink_render (): /GstPipeline:pipeline0/GstUDPSink:udpsink0:
Reason: Error sending message: Message too long


Is this is the proper way to send my data to another client ?. What is Significance of the errror "Reason: Error sending message: Message too long"
Cheers,
--Gokul.
Reply | Threaded
Open this post in threaded view
|

Re: Error while sending fb frames using udpsink element

Nicolas Dufresne-5
Le lundi 24 avril 2017 à 04:26 -0700, Gokul Vellingiri a écrit :

> Additional debug info:
> gstmultiudpsink.c(598): gst_multiudpsink_render ():
> /GstPipeline:pipeline0/GstUDPSink:udpsink0:
> Reason: Error sending message: Message too long/
>
> Is this is the proper way to send my data to another client ?. What
> is
> Significance of the errror "*Reason: Error sending message: Message
> too
> long*"
In UDP, the frames need to fit the socket buffer, a kernel
configuration (see buffer-size property). In general though, what
people do is to "packetize" each frames into multiple parts, generally
the size of one MTU to avoid packets being split by the network. The
packetization is usually done in a way to remember the framing even
though each frame is on multiple packets. A good options is to use RTP
payloaders. That will let you then use an rtpjitterbuffer on the
receiving end, to compensate network jitter and to reorder the
packets. Later on with RTP, you could start using rtpbin and enable
feedback and retransmissions for better quality.

  ... ! rtpvrawpay ! udpsink ...

And receiver would look like:

  udpsrc caps=... ! rtpjitterbuffer latency=20 ! rtpvrawdepay ! ...

If you want to stream on slower network though, you may have to start
thinking about compressing your stream using CODECs, for that there is
many option, including JPEG, VP8/9, H264/5 (non-free), etc.

regards,
Nicolas



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

signature.asc (188 bytes) Download Attachment