摘要
本文簡介一種添加選徑規則(routing rule)的作法,使得具備多張網卡的Windows 10作業系統上的VLC多媒體播放程式(VLC media player)可以選擇特定網卡來發送IGMP(Internet Group Management Protocol)封包。本文
欲在IPv4的環境下,透過具備多張網卡的Windows 10作業系統上的VLC多媒體播放程式,以群播(multicast)的形式來觀看網路電視,可能會遭遇群播的IGMP封包未在預期的網卡離開機器的狀況。可以在這裡見到相關的範例、以及使用更改既有路徑的metric的解決作法。另一個解決作法是添加專用的路徑,範例指令如下,其中239.4.1.1/255.255.255.255是群播位址、而192.168.33.1指定的網卡(VMware的host-only網卡)上的IPv4位址。
route add 239.4.1.1 mask 255.255.255.255 192.168.33.1
使用VLC多媒體播放程式裏的「開啟網路串流」功能來觀看rtp://239.4.1.1:5004的電視節目時,它會發送IGMP封包、且期許節目封包入境、並且在節目封包入境時呈現節目畫面。
可以利用Wireshark觀察到IGMP封包從指定的介面位址192.168.33.1出境;而且,這張網卡介面後方具有提供電視節目的機器。
附錄
使用指令啟動VLC多媒體播放程式進行群播串流
類似這裡所提到的Windows環境的作法,一個在Ubuntu環境的console使用指令啟動VLC多媒體播放程式進行群播(multicast)串流的範例如下,其中,使用的VMware的Ubuntu 18.04虛擬機、239.4.1.1是節目的群播位址、5004是節目的埠、而ens33是連結(綁定)的介面。cvlc ~/Downloads/ATM+%e5%ae%a3%e5%b0%8e%e5%bd%b1%e7%89%87.mp4 --sout='#rtp{dst=239.4.1.1,port=5004,mux=ts}' --sout-all --sout-keep --loop --ttl=1 --dscp=0x20 --miface=ens33
留意,ens33的介面名稱是可以省略的引數。
cvlc ~/Downloads/ATM+%e5%ae%a3%e5%b0%8e%e5%bd%b1%e7%89%87.mp4 --sout='#rtp{dst=239.4.1.1,port=5004,mux=ts}' --sout-all --sout-keep --loop --ttl=1 --dscp=0x20
然而,在host-only網卡的配置之下,省略介面名稱將會遭遇VLC啟動失敗的狀況。
面對這種配置,可以添加一筆群播專用的路徑。
ip -4 route add 224.0.0.0/4 dev ens33
使得在host-only網卡的配置之下也能順利地啟動VLC。
沒有留言:
張貼留言