Hi,
I'm trying to use gst-rtsp-server to transfer an uncompressed video stream with a high frame rate (>80 fps) over a dedicated network to 1 client. My pipeline setup is quite simple and looks like this: gst_rtsp_media_factory_set_launch (factory, "( appsrc name=source ! rtpgstpay name=pay0 )"); I notice that the bottleneck is that I max out 1 core of my CPU, while the others are not in use, which prevents me from achieving the required frame rate. A solution would be to insert a queue to divide the pipeline into multiple threads, but 90% of the pipeline is unexposed to me as it's integrated in the gst-rtsp-server. Therefore I wonder if there is some way I can spread out the workload of gst-rtsp-server over multiple cores? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le jeu. 31 oct. 2019 14 h 40, wilson1994 <[hidden email]> a écrit : Hi, Simple thing to try is to add a queue (thread) after the payloader, and name is pay0 (even if it not a payloader, it should still work. That will split the load of packetization (which will likely copy the stream) in its own thread. That being said, adding buffer list support to this payloader, and sub-buffer support may be required for such a high bitrate case.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi,
Thank you for your response, I didn't know I could also have a queue as pay0 ! Can you please tell me what you mean with buffer list support and sub buffer list support in the payloader, and some general pointers on how to achieve that? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le lun. 4 nov. 2019 10 h 25, wilson1994 <[hidden email]> a écrit : Hi, Are you saying you are looking forward working on this inside GStreamer code ? It's not related to your code, but upstream code (just to clarify). GstBufferList is a container for multiple GstBuffer that let you send multiple GstBuffer in one call. Many elements in the RTP stack is still missing for that, which is required for high bitrate.
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Hi,
I'm sorry, I thought you meant some parameters to be tweaked in the pipeline. I ended up achieving the desired frame rate by: * adding queue after the rtpgstpay * Increasing the MTU size of rtpgstpay (1400 by default, while max udp packet size is 65,535 bytes). Taking an MTU of 65000 brought down the CPU load by more than 50%. So pipeline looks like this: gst_rtsp_media_factory_set_launch (factory, "( appsrc name=source ! rtpcustompay mtu=65000 ! queue max-buffer-size=4 name=pay0 )"); -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le mardi 05 novembre 2019 à 02:26 -0600, wilson1994 a écrit :
> Hi, > > I'm sorry, I thought you meant some parameters to be tweaked in the > pipeline. > > I ended up achieving the desired frame rate by: > > * adding queue after the rtpgstpay > * Increasing the MTU size of rtpgstpay (1400 by default, while max udp > packet size is 65,535 bytes). Taking an MTU of 65000 brought down the CPU > load by more than 50%. That's fair workaround, good catch. Of course these large packet will get split on most network, but probably not a huge problem in that context. > > So pipeline looks like this: > > gst_rtsp_media_factory_set_launch (factory, "( appsrc name=source ! > rtpcustompay mtu=65000 ! queue max-buffer-size=4 name=pay0 )"); > > > > > -- > Sent from: http://gstreamer-devel.966125.n4.nabble.com/ > _______________________________________________ > 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 |
Free forum by Nabble | Edit this page |