基于HTTP的点对点广播_http 广播

本文是我一年前做一个p2p解决方案的时候写的,现在翻出来有些基本概念已经忘记了,才知道以前竟然还做过这个,惊讶中啊:

简介:

此方案由开放源代码项目P2P-Radio修改而成,(P2P-Radio是一个点对点音频和视频广播系统,功能有freeloader检测,流式传输,SHOUTcast 支持,一个易于使用的GUI,以及一个单独的监视应用程序来显示当前P2P网络的结构。-----------摘自P2P-Radio项目文档)下图展示了一般网络结构:

clip_image001

该框架安排有一个监控模块,每个加入此P2P网络的节点都会在此模块有所表示从而全面展示了全网结构

工作原理:

1. 虚拟资源服务器启动,随即从真实资源所在地下载流数据。

2. 虚拟资源服务器启动TCP/UDP守护收发线程,等待客户连接。

3. 如果使能监控,则虚拟资源服务器第一个加入到监控服务的树形结构中。

4. 客户连接虚拟资源服务器,同时客户启动一个接收线程,实时接收媒体流并载入本地缓存,同时客户要启动同上虚拟资源服务器一样的TCP/UDP收发线程,这样它便可以作为资源提供者服务其它节点,如果使能监控,则每个连接节点都会作为被连接节点的子节点加入监控树形结构。

5. 如果使能监控,数据的每次传输以及发生的每个事件(如加入,退出,重定向等)都会在树形结构有所体现,并打印日志。

6. 默认地,代码中会启动本机默认播放器播放流媒体,但是也可以通过Web方式用浏览器插件播放,因为流媒体本身就是在http上传输的,这将非常方便。

优点:

音视频流在http上传输,点对点传输。对于播放实时流媒体可以节省大量带宽。网络拓扑监控与数据传输分离,有利于扩展。

缺点:

必须有资源服务器,因此存在资源服务器处的带宽瓶颈

测试

经过测试在局域网中性能很好,具体方案如下:

一台主机充当虚拟资源服务器,将资源从真正的服务器下载到本地缓存,连续下载,基于时间戳实时更新流数据,局域网内其他主机中的一台连接此虚拟资源主机,另外的主机可以随意彼此连接。

1. 节点1:ip-10.2.1.56,port-2000, 虚拟资源服务器 à 远程主机的音频

2. 节点2:ip-10.2.1.65,port-2000, 一般节点 à 节点1

3. 节点3:ip-10.2.1.62,port-2000, 一般节点 à 节点2

4. 节点4:ip-10.2.1.56,port-2490, 一般节点 à 节点3

5. 节点5:ip-10.2.1.62,port-2490, 一般节点 à 节点4

6. 节点6:ip-10.2.1.56,port-12533,一般节点 à 节点2

7. 节点7:ip-10.2.1.65,port-2490, 一般节点 à 节点3

8. 在节点2用windows media player打开http://10.2.1.62:2490/stream.mp3

9. 节点7自动打开windows media player播放http://10.2.1.62:2001/stream.mp3

以上测试通过,播放流畅,不足之处在于音乐有些走调,不知原因,解决中,另外就是偶尔有爆破音,不能确定原因,解决中。

原文链接: https://blog.csdn.net/dog250/article/details/5302954

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    基于HTTP的点对点广播_http 广播

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/410575

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 下午12:06
下一篇 2023年4月26日 下午12:06

相关推荐