如何使用Gstreamer命令行在数据包中发送一行数据

时间:2019-05-10 07:24:32

标签: udp rtp gstreamer-1.0

我正在尝试使用Windows中的Gstreamer 1.0通过RTP协议(RFC4175)将原始视频流传输到以太网。

我不想压缩我的数据,所以我使用rtpvrawpay元素 我有以下gstreamer行

gst-launch-1.0 -v filesrc location=%FILENAME% ! videoparse width=%WIDTH% height=%HEIGHT% framerate=50/1 format=GST_VIDEO_FORMAT_GRAY16_BE ! videoconvert ! video/x-raw,media=(string)video,encoding-name=(string)RAW,sampling=(string)YCbCr-4:2:2,witdh=640,height=512 ! rtpvrawpay pt=96 ! udpsink async=true host=%HOST% port=%PORT%

我有另一个系统对此rtp视频进行解码。但是,该系统仅限于为每个UDP数据包处理1行视频。此外,系统会消除任何长度不同于1342字节的数据包。 (1行:640(宽度)x2字节+ 20字节的RTP标头+ 42字节的UDP标头)

因此,我必须告诉gstreamer管道在数据包中发送1行。我的第一次尝试是设置rtpvrawdepay元素的“ mtu”属性。当我将mtu设置为1300时,我的UDP数据包的长度为1400字节(?)

然后将其设置为1302,UDP数据包是1403字节。必须有一种方法告诉gstreamer不要将任何数据包用作RTP中的连续数据包。

1 个答案:

答案 0 :(得分:0)

d0的一些操作:首先,将视频上传到FTP。然后,在JavaScript / html中:

<embed src="myftpsie/mycoolvideo.mp4"></embed>

确保其采用html可以理解的格式