尝试使用 gStreamer 模拟 ST2110 Stream 并失败

问题描述 投票:0回答:0

我正在尝试使用 gStreamer 模拟 ST2110 流,以便像这样将其从主机 A 发送到主机 B。问题是,我不知道 gstreamer 是如何工作的。

|发送者|----->开关----->|接收者|

很高兴知道: 操作系统:Ubuntu

LinuxPTP:同步服务器

gStreamer* 和 Telestream PRISM*:创建 St2110 信号

Tcpdump:抓取主机 B 上的流量

Wireshark ST2110 解剖器:过滤 pcaps

EBU-LIST:上传捕获文件并检查流是否符合 St2110 标准。

带宽:高达 10gb/s

gStreamer 发件人: gst-launch-1.0 rtpbin 名称=rtpbin
videotestsrc 水平速度=2!
视频/x-raw,宽度=1280,高度=720,帧率=30/1,格式=UYVP! rtpvrawpay pt=102 !队列 !
rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 !队列 !
udpsink 主机=233.0.1.2 端口=5005 渲染延迟=0 rtpbin.send_rtcp_src_0 !
udpsink host=233.0.1.2 port=5005 sync=false async=false
音频测试!音频重采样!音频转换!
rtpL24pay ! application/x-rtp, pt=103, payload=103, clock-rate=48000, channels=2 !
rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 !
udpsink host=233.0.1.2 port=5007 render-delay=0 rtpbin.send_rtcp_src_1 !
udpsink host=233.0.1.2 port=5007 sync=false async=false

gStreamer 接收器: gst-launch-1.0 rtpbin 名称=rtpbin udpsrc 多播组=233.0.1.2 ! autovideosink 同步=真

结果: EBU-LIST result

如您所见,问题是 Audio、Cinst、VRX 和 Video Latency。

C:网络兼容模型。测量发送方的数据包延迟变化。 如果 packetnumber 超过 CMAX,桶就会溢出,我们就会丢失数据包。 Network Compatibility Model

VRX:虚拟接收缓冲区模型:第二个“桶”。它的drainrate是基于receiver的read schedule。 VRX

音频:Audio

来源: https://tech.ebu.ch/docs/groups/list/Live_IP_Software_Toolkit-paper.pdf

我的问题是,我应该更改或添加哪些 gStreamer 设置来解决这 4 个问题(Cinst、VRX、延迟)? 我怎样才能模拟那些“漏水桶”C 和 VRX。 旁注:我使用硬件 st2110 信号发生器测试了设置,EBU-List 结果 100% 符合 ST2110。所以问题必须或应该是发件人/gStreamer。

如有任何帮助,我将不胜感激。

我测试了不同的 gStreamer 设置,但如果你不知道 gStreamer 是如何工作的,它不是很有效。

gstreamer
© www.soinside.com 2019 - 2024. All rights reserved.