通过特定网络接口使用IPv6的GStreamer多播
我对这个主题比较陌生,所以我的知识可能有一些基本的差距,但我正在尝试使用GStreamer向使用IPv6(在Windows 10上)的嵌入式设备发送MPEG2-TS流。嵌入式设备通过USB以太网适配器连接到媒体转换器(RJ45-to-BroadR-Reach) 如果我使用IPv4进行广播(例如192.168.1.255),一切正常。我可以在设备上接收流,没有任何问题。工作正常的示例命令:通过特定网络接口使用IPv6的GStreamer多播,gstreamer,ipv6,multicast,rtp,mpeg2-ts,Gstreamer,Ipv6,Multicast,Rtp,Mpeg2 Ts,我对这个主题比较陌生,所以我的知识可能有一些基本的差距,但我正在尝试使用GStreamer向使用IPv6(在Windows 10上)的嵌入式设备发送MPEG2-TS流。嵌入式设备通过USB以太网适配器连接到媒体转换器(RJ45-to-BroadR-Reach) 如果我使用IPv4进行广播(例如192.168.1.255),一切正常。我可以在设备上接收流,没有任何问题。工作正常的示例命令: gst-launch-1.0.exe-v filesrc location=d:/video.ts do t
gst-launch-1.0.exe-v filesrc location=d:/video.ts do timestamp=false\
“视频/mpegts,systemstream=(布尔值)true,packetsize=(int)188”\
tsparse set timestamps=true!rtpmp2tpay mtu=1200 pt=127\
udpsink主机=192.168.1.255端口=5001
现在我需要通过多播使用IPv6来实现这一点,但我不知道如何实现
假设嵌入式设备的IPv6地址为fe80::1:2:3
,而PC上以太网接口的IPv6地址为fe80::1:2:4
。我使用哪个地址作为多播?我已经尝试了ff0x::1:2:4
和ff1x::1:2:4
(其中x=1,2,3),但数据通过我的计算机的主网络接口传输(例如WiFi接口,这是使用Wireshark检查的)
如果我尝试添加多播iface
选项,GStreamer会出现以下错误:
无法加入多播组:加入多播组时出错:
请求的地址在其上下文中无效
好的,在向各种邮件列表和论坛发布了类似的问题之后,我了解到您不能以这种方式绑定到接口,此外,多播流量总是通过具有最低度量的接口进行路由。因此,实现我想要的目标的唯一可能性是:
- 使用所讨论的接口的度量
- 为所需地址范围添加路由
- 以某种方式强制所有来自GStreamer的流量通过所需接口(例如ForceBindIP)