【发布时间】:2019-01-08 05:13:29
【问题描述】:
我对这个主题相对较新,因此我的知识可能存在一些基本空白,但我正在尝试使用 GStreamer 将 MPEG2-TS 流发送到使用 IPv6 的嵌入式设备(在 Windows 10 上)。嵌入式设备通过 USB 以太网适配器连接到媒体转换器(RJ45 到 BroadR-Reach)。
如果我使用 IPv4 进行广播(例如 192.168.1.255),一切正常。我可以毫无问题地在设备上接收流。一个有效的示例命令:
gst-launch-1.0.exe -v filesrc location=d:/video.ts do-timestamp=false ! \ "video/mpegts, systemstream=(boolean)true, packetsize=(int)188" ! \ tsparse set-timestamps=true ! rtpmp2tpay mtu=1200 pt=127 ! \ udpsink host=192.168.1.255 port=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 检查的)。
如果我尝试添加multicast-iface 的选项,GStreamer 会给出以下错误:
无法加入多播组:加入多播组时出错: 请求的地址在其上下文中无效。
【问题讨论】:
标签: gstreamer ipv6 multicast rtp mpeg2-ts