1

我正在尝试使用 Gstreamer1.0 创建一个简单的 UDP 视频流。问题是,就我的项目而言,我需要能够拥有一个普通的 UDP 流,但我能找到的几乎所有教程都启用了 RTP。所以我想翻译这个简单的流:

玩家:

gst-launch-1.0 udpsrc port=5000 !  application/x-rtp, encoding-name=H264,payload=96 !  rtph264depay ! h264parse ! avdec_h264 !  autovideosink

服务器:

gst-launch-1.0 v4l2src !  video/x-raw,width=640,height=480 !  x264enc ! h264parse ! rtph264pay !  udpsink host=127.0.0.1 port=5000

有人可以指出我如何仅在 UDP 中翻译这个简单示例的正确方向吗?

4

1 回答 1

1

您在上面所说的管道,在发件人方面,我没有看到任何使用rtp. 理想情况下rtpjpegpay应该在发送方使用,然后在接收方使用rtpjpegdepay. 您是否尝试过相同的管道,但没有 UDP。它会抱怨您的数据包大小udpsink大于缓冲区。您需要rtpxpay将视频流分段为 rtp 数据包。

如果您不需要 rtp,请尝试直接发送流,但在udpsink. 这也可能导致渲染视频延迟增加、一些数据包丢失等。尝试在udpsink. 不幸的是udpsink,不提供对配置这些大小的直接控制。因此,您可能必须找出其他方法。

于 2018-11-26T15:15:39.020 回答