VLC组播串流实验记录(带Mac及PC的VLC详细设置截图)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.实验拓扑
拓扑如上:
PC1作为组播源(安装VLC),PC3作为组播接收者(安装VLC)。
经过试验验证,组播地址为226.1.1.1或者239.1.1.1都可以正常工作。
2.注意事项
1.组播服务器的版本最好是0.8.6B版本(此版本也可以在win7,64bit版本上使用),此版
本最大的问题是不能循环播放。
最新的版本2.2.1版本性能有问题,背靠背测试都存在花屏的现象(开不开转码都会花屏),几乎不能用。
2.视频格式需要使用avi格式的视频文件,其它类型问题会卡。
这个现象和VLC软件相关。
3.需要修改TTL值,跨网段组播时,最好修改为100以上。
2.2.1的VLC版本需要设置TTL
值才能跨网段组播。
(2.2.1版本类似MAC的设置,详见3.4.1的详细设置)
4.MAC电脑版本的VLC也可以实现类似功能,详细设置请见3.4节。
3.实验记录
3.1.VLC的设置(0.8.6b版本)
软件版本:服务器端最好使用0.8.6b版本,客户端使用2.2.1.0版本. 我在实验时,客户端使用0.8.6b的版本我这里出现了只有声音,没有图像的问题,但是换成2.2.1.0版本就没有问题。
没有深究,估计是VLC解码上的问题。
使用新版本2.2.1.0作为客户端就行了。
3.1.1.PC机VLC组播源端(服务器端)详细设置过程
1.PC3打开VLC软件之前,R3并没有组播组记录。
打开VLC并且接收组播流后,VLC软件
将会发出IGMP加入报文
关闭VLC软件,将会受到离开组播组的报文
使用向导创建组播串流
视屏文件的格式必须选择AVI格式。
如果没有响应格式的视屏,请使用格式工厂软件来转换视屏格式。
此处的TTL设置非常重要。
串流后查看媒体信息统计,可以看到组播数据的流量大小。
(服务器端和客户端都可以查看,客户端没有串流的统计信息)下图是服务器端的信息。
3.1.2.PC机VLC组播接收端(客户端)详细设置过程
设置组播地址和端口号服务器端的一致。
以下是0.8.6b版本的设置方法。
0.8.6b版本的UDP端口号默认是1234.
3.2.路由器配置参数
R1:R2:R3
R1:R2:R3:
注明:此处设置R2为网络的RP地址。
3.3.SPT切换
如上配置为默认SPT切换阈值,默认是直接切换。
可以设置为不切换。
当前转发树为SPT。
从信息上可以看出,RPT树已经被剪枝,已经切换为SPT树。
R3#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry Total 1 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry Total 0 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 00:18:45 RP: 2.2.2.2
RPF nbr: 23.0.0.2
RPF idx: gigaethernet1 Flags:
JOIN DESIRED Upstream State: JOINED Local interface list:
gigaethernet0 Joined interface list: Asserted interface list:
(10.0.0.2, 239.1.1.1)
Up time: 00:05:21
KAT time: 00:02:10 RPF nbr: 13.0.0.1
RPF idx: gigaethernet2 SPT bit: TRUE
Flags:
JOIN DESIRED Upstream State: JOINED Local interface list: Joined interface list: Asserted interface list: Outgoing interface list:
gigaethernet0 Packet count 275961
(10.0.0.2, 239.1.1.1, rpt) Up time: 00:05:21 RP: 2.2.2.2
Flags:
RPT JOIN DESIRED PRUNE DESIRED
RPF SGRPT XG EQUAL
Upstream State: PRUNED
Local interface list:
Pruned interface list:
Outgoing interface list:
gigaethernet0
R1上的组播路由表:
R1#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 0 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(10.0.0.2, 239.1.1.1)
Up time: 00:29:08
KAT time: 00:00:38
RPF nbr: 0.0.0.0
RPF idx: None
SPT bit: TRUE
Flags:
JOIN DESIRED
COULD REGISTER
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet2 00:15:23/00:03:08 Asserted interface list:
Outgoing interface list:
gigabitethernet2
Packet count 646014
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:29:08
RP: 2.2.2.2
Flags:
RPF SGRPT XG EQUAL
Upstream State: RPT NOT JOINED
Local interface list:
Pruned interface list:
Outgoing interface list:
R2:RP上显示已经剪枝掉RPT,以下是截图和显示的全部信息
R2#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 1 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 00:40:22
RP: 2.2.2.2
RPF nbr: 0.0.0.0
RPF idx: None
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet1 00:40:22/00:03:08
Asserted interface list:
(10.0.0.2, 239.1.1.1)
Up time: 00:01:43
KAT time: 00:02:57
RPF nbr: 12.0.0.1
RPF idx: gigabitethernet0
SPT bit: TRUE
Flags:
Upstream State: NOT JOINED
Local interface list:
Joined interface list:
Asserted interface list:
Outgoing interface list:
Packet count 1
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:01:43
RP: 2.2.2.2
Flags:
RPT JOIN DESIRED
PRUNE DESIRED
RPF SGRPT XG EQUAL
Upstream State: PRUNED
Local interface list:
Pruned interface list:
gigabitethernet1 00:01:43/00:03:08
Outgoing interface list:
3.3.1.设置接收端DR设备不切换到SPT。
3.3.1.1.R1是源端路由器,没有*,G表项,就是说没有共享树,
只有SPT。
可以看到从G0口(与R2相连)加入的SPT树。
R1#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 0 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(10.0.0.2, 239.1.1.1)
Up time: 00:05:16
KAT time: 00:02:29
RPF nbr: 0.0.0.0
RPF idx: None
SPT bit: TRUE
Flags:
JOIN DESIRED
COULD REGISTER
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet0 00:05:16/00:03:14
Asserted interface list:
Outgoing interface list:
gigabitethernet0
Packet count 151501
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:05:16
RP: 2.2.2.2
Flags:
RPF SGRPT XG EQUAL
Upstream State: RPT NOT JOINED
Local interface list:
Pruned interface list:
Outgoing interface list:
3.3.1.2.R2是RP。
可以看到R2上既有SPT树,也有RPT树。
R2#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 1 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 00:13:04
RP: 2.2.2.2
RPF nbr: 0.0.0.0
RPF idx: None
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet1 00:13:04/00:03:26 Asserted interface list:
(10.0.0.2, 239.1.1.1)
Up time: 00:13:01
KAT time: 00:03:30
RPF nbr: 12.0.0.1
RPF idx: gigabitethernet0
SPT bit: TRUE
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
Joined interface list:
Asserted interface list:
Outgoing interface list:
gigabitethernet1
Packet count 293842
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:13:04
RP: 2.2.2.2
Flags:
RPT JOIN DESIRED
PRUNE DESIRED
RPF SGRPT XG EQUAL
Upstream State: PRUNED
Local interface list:
Pruned interface list:
Outgoing interface list:
gigabitethernet1
3.3.1.3.R3是接收者端路由器,其上只有RPT树。
即,只有*,G
表项
R3#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 1 (*,G) entry
Total 0 (S,G) entry
Total 0 (S,G,rpt) entry
Total 1 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 00:17:05
RP: 2.2.2.2
RPF nbr: 23.0.0.2
RPF idx: gigaethernet1
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
gigaethernet0
Joined interface list:
Asserted interface list:
FCR:
Source: 10.0.0.2
Up time: 00:08:18
KAT time: 00:02:54
Outgoing interface list:
gigaethernet0
Packet count 443586
3.3.2.设置接收端DR设备要切换到SPT。
3.3.2.1.R1上可以看到有源树,其从G2口(与R3相连)加入,
R1#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 0 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(10.0.0.2, 239.1.1.1)
Up time: 00:05:38
KAT time: 00:02:42
RPF nbr: 0.0.0.0
RPF idx: None
SPT bit: TRUE
Flags:
JOIN DESIRED
COULD REGISTER
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet2 00:01:53/00:02:37
Asserted interface list:
Outgoing interface list:
gigabitethernet2
Packet count 335880
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:05:38
RP: 2.2.2.2
Flags:
RPF SGRPT XG EQUAL
Upstream State: RPT NOT JOINED
Local interface list:
Pruned interface list:
Outgoing interface list:
3.3.2.2.R2为RP,R2上可以看到RPT已经切换,
R2#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 1 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 00:11:53
RP: 2.2.2.2
RPF nbr: 0.0.0.0
RPF idx: None
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
Joined interface list:
gigabitethernet1 00:11:53/00:02:37 Asserted interface list:
(10.0.0.2, 239.1.1.1)
Up time: 00:10:51
KAT time: 00:03:23
RPF nbr: 12.0.0.1
RPF idx: gigabitethernet0
SPT bit: TRUE
Flags:
Upstream State: NOT JOINED
Local interface list:
Joined interface list:
Asserted interface list:
Outgoing interface list:
Packet count 0
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:10:51
RP: 2.2.2.2
Flags:
RPT JOIN DESIRED
PRUNE DESIRED
RPF SGRPT XG EQUAL
Upstream State: PRUNED
Local interface list:
Pruned interface list:
gigabitethernet1 00:10:51/00:02:37 Outgoing interface list:
3.3.2.3.R3为接收端路由器,可以看到已经切换为SPT。
R3#show ip pim mroute
IP Multicast Routing Table:
PIM VRF Name: Default
Total 0 (*,*,RP) entry
Total 1 (*,G) entry
Total 1 (S,G) entry
Total 1 (S,G,rpt) entry
Total 0 FCR entry
Up timer/Expiry timer
(*, 239.1.1.1)
Up time: 01:02:35
RP: 2.2.2.2
RPF nbr: 23.0.0.2
RPF idx: gigaethernet1
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
gigaethernet0
Joined interface list:
Asserted interface list:
(10.0.0.2, 239.1.1.1)
Up time: 00:02:35
KAT time: 00:02:25
RPF nbr: 13.0.0.1
RPF idx: gigaethernet2
SPT bit: TRUE
Flags:
JOIN DESIRED
Upstream State: JOINED
Local interface list:
Joined interface list:
Asserted interface list:
Outgoing interface list:
gigaethernet0
Packet count 105980
(10.0.0.2, 239.1.1.1, rpt)
Up time: 00:02:35
RP: 2.2.2.2
Flags:
RPT JOIN DESIRED
PRUNE DESIRED
RPF SGRPT XG EQUAL
Upstream State: PRUNED
Local interface list:
Pruned interface list:
Outgoing interface list:
gigaethernet0
3.4.Mac电脑的VLC设置(重点是TTL)方法:TTL的设置方法:
3.4.1.Mac电脑VLC组播源端(服务器端)详细设置过程
不用设置转码,如设置了转码对服务器要求很高。
设置TTL,此处是重点
3.4.2.Mac电脑VLC组播接收端(客户端)详细设置过程。
对于VLC来说,源端和接收端都是同一个软件版本,只是设置的菜单栏位置不同而已。
以下是客户端显示的组播视频,可以看到是从RTP://226.1.1.1:1234接收的组播流量
在接收端可以查看码流速率
4.后记
如果软件和路由器都设置好以后,VLC客户端仍然收不到组播流量。
有以下几个步骤可以操作:
1.查看路由器上的组播组表项是否正常,接收端的路由器应该有IGMP组播组表项
2.PIM组播邻居,组播路由表项是否正常
3.把组播源端和接收端背靠背用网线直连或者接交换机上试试看能否收到组播流量。
可以
通过在客户端上使用wireshark软件抓包查看客户端是否收到组播流量,收到的组播流量的组播组和UDP端口是否一致。
如果发现不一致,请修改客户端的端口号来适应。
以下是MAC端抓包的信息,Windows电脑端的wireshark就不再抓图演示。
4.如果局域网或者背靠背能收到组播流量,但经过路由器之后不能收到就需要背靠背抓包
确认下是否是TTL太小导致(默认为1,不能跨路由器,只能在局域网内传播),如果是请按照3.1.1节的VLC组播源端设置方法设置TTL值。