使用udpsink将h264与gstreamer(c+;+;)流式传输

使用udpsink将h264与gstreamer(c+;+;)流式传输,udp,streaming,h.264,gstreamer,Udp,Streaming,H.264,Gstreamer,我正在尝试使用gstreamer(在windows中)通过UDP在网络上传输h264视频。 首先,如果我使用这样的管道,一切看起来都正常,我看到了测试模式: videotestsrc、ffmpegcolorspace、x264enc、rtph264pay、rtph264depay、ffdec_h264、ffmpegcolorspace、自动视频接收器 现在,我决定将此管道划分为客户端和服务器部分,使用udpsink和udpsrc通过udp传输流 Server: videotestsrc, ffm

我正在尝试使用gstreamer(在windows中)通过UDP在网络上传输h264视频。 首先,如果我使用这样的管道,一切看起来都正常,我看到了测试模式:

videotestsrc、ffmpegcolorspace、x264enc、rtph264pay、rtph264depay、ffdec_h264、ffmpegcolorspace、自动视频接收器

现在,我决定将此管道划分为客户端和服务器部分,使用udpsink和udpsrc通过udp传输流

Server: videotestsrc, ffmpegcolorspace, x264enc, rtph264pay, udpsink
Client: udpsrc, rtph264depay, ffdec_h264, ffmpegcolorspace, autovideosink
在服务器上,我使用类似于:

source = gst_element_factory_make ("videotestsrc", "source");
ffmpegcolortoYUV = gst_element_factory_make ("ffmpegcolorspace", "ffmpegcolortoYUV");
encoder = gst_element_factory_make ("x264enc", "encoder");
rtppay = gst_element_factory_make ("rtph264pay", "rtppay");
udpsink = gst_element_factory_make ("udpsink", "sink");

g_object_set (source, "pattern", 0, NULL);
g_object_set( udpsink, "host", "127.0.0.1", NULL );
g_object_set( udpsink, "port", 5555, NULL );
然后我将元素添加到管道并运行,在任何地方都没有错误。 现在如果我查找UDP端口5555,它没有侦听

客户端部分也会运行,但如果服务器端没有UDP端口侦听,它将无法工作

编辑:事实上,我非常接近解决方案。。。如果我启动客户端,它可以工作,但是在可视化方面有一些问题。。。我认为问题在于x264enc配置。有人知道如何更改x264enc参数,如速度预设或调谐??? 我试图实例化GstX264EncPreset或GstX264EncTune,但我没有这些结构的声明。
任何人都知道以其他方式设置x264enc的方法,比如解析字符串或类似的东西?

尝试将udpsrc元素的上限设置为“application/x-rtp”。

我知道这是一篇较旧的文章,但您可以使用与预设值相对应的简单整数设置GSTX64ENCPRESET值

g_对象集(编码器,“速度预设”,2,空)适合我。可使用
gst-inspect-1.0 x264enc
找到这些值,如下所示:

  speed-preset        : Preset name for speed/quality tradeoff options (can affect decode compatibility - impose restrictions separately for your target decoder)
                        flags: readable, writable
                        Enum "GstX264EncPreset" Default: 6, "medium"
                           (0): None             - No preset
                           (1): ultrafast        - ultrafast
                           (2): superfast        - superfast
                           (3): veryfast         - veryfast
                           (4): faster           - faster
                           (5): fast             - fast
                           (6): medium           - medium
                           (7): slow             - slow
                           (8): slower           - slower
                           (9): veryslow         - veryslow
                           (10): placebo          - placebo