热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

FMS4P2P直播解决方案

一、方案简介目前视频直播通用的方案有两种,分别是单播模式和多播模式。单播模式虽然有着数据流稳定的特点,但具有地域化问题,且随着客户量的增加,服务器负载也随之增大,需要投入大量的硬件设备以及巨额的带宽费用。多播模式通常体现为现今的P2P技术。P

一、方案简介 目前视频直播通用的方案有两种,分别是单播模式和多播模式。单播模式虽然有着数据流稳定的特点,但具有地域化问题,且随着客户量的增加,服务器负载也随之增大,需要投入大量的硬件设备以及巨额的带宽费用。多播模式通常体现为现今的P2P技术。P

一、方案简介

目前视频直播通用的方案有两种,分别是单播模式和多播模式。单播模式虽然有着数据流稳定的特点,但具有地域化问题,且随着客户量的增加,服务器负载也随之增大,需要投入大量的硬件设备以及巨额的带宽费用。多播模式通常体现为现今的P2P技术。P2P模式解决了单播模式的问题,在提高传输速度和缓解服务器带宽压力上有较大优势,一般在直播中应用得较多。使用P2P技术后可节省内容发布商资金,提高数据流通量。

Adobe Flash Media Server 4(以下简称FMS4)发布后, 联讯软件立即投入大量人力进行研究与开发。在其发布短短几周内便掌握了Flashplayer P2P API的使用以及服务器的配置方法。

P2P功能采用了最新的Flash RTMFP协议,该协议可以允许使用Adobe Flash Player 10.1的终端用户之间进行直接通信即实现了P2P传输技术。通过使用RTMFP,直播系统将极大降低带宽消耗,媒体数据在终端用户之间流动,不完全由服务器提供,更适合做大规模直播应用。

二、关于P2P
P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快。

三、单播和多播的区别
单播(Unicast)传输:在发送者和每一接收者之间实现点对点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也必须相应的复制多份的相同数据包。如果有大量主机希望获得数据包的同一份拷贝时,将导致发送者负担沉重、延迟长、网络拥塞;为保证一定的服务质量需增加硬件和带宽。

(单播)

多播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它不仅提高了数据传送效率,还减少了骨干网络出现拥塞的可能性。


(多播)

四、RTMP和RTMFP的区别
RTMP(Real- Time Messaging Protocol)协议用于单播, RTMFP(Real‐Time Media Flow Protocol)协议用于多播。RTMP是基于TCP的,RTMFP是基于UDP的。UDP在传送直播数据方面比TCP有较多的优势,比如减少延时、对丢包的容忍,虽然在可靠性上有所损失。不象RTMP, RTMFP支持Flash Player直接发送数据给另一个,而不经过Server。服务端连接将被用来初始化并交互一些客户端之间的信息,也可用来进行服务端调用或者作为进入其他系统的网关。FMS4也将用来为用户提供地址认证服务和NAT地址转换服务,避免用户陷入混乱。

(RTMP协议)


(RTMFP协议)

五、方案实现


(1)视频源:可以使用电视信号、摄像机以及其他编码机支持的视频源。
(2)编码机通过采集卡将信号采集并转码,配合FMS4配置器以RTMP协议发送给FMS4服务器。
(3)配置器(为方便用户使用,我公司重新编写了中文版配置器)专用于生成多播地址的应用。并将此地址分发给编码机及直播应用(联讯电视直播系统、网络课堂系统及网络电视台系统适用)。
(4)直播应用将多播地址发送至我公司客户端视频播放器,视频播放器识别多播地址后,向FMS服务器请求后,获得视频源及其他种子信息并开始视频数据传送。

六、技术特点
1、布置简单。 只需要安装流媒体服务器并进行简易配置即可。
2、高扩展性。 可配置多台FMS服务器组成集群, 增加负载能力。
3、RTMFP协议采用了UDP提升了传送的速度,相对之前的TCP协议在数据传输效率上大大提高。 UDP是Internet上一种更有效传送音频视频的方法,虽然会有一些丢包,错包。RTMFP有两个特性可以帮助解决一些连接错误。
(1)快速连接恢复:连接在以外情况下将快速恢复。例如,一个无线连接掉线了,一旦重连,他将迅速拥有所有的传送能力。
(2)IP动态化:一个活动的网络会话将以PEER来标识,即使他变了一个IP,也可以保持原来的会话。例如,一个笔记本在一个无线网络获得了一个新IP地址,他将立刻继续刚才的会话。
4、减少音视频直播、点播、多人在线游戏等应用的网络带宽的消耗,减轻服务器的负担。
5、负载均衡。P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。

推荐阅读
  • 一面问题:MySQLRedisKafka线程算法mysql知道哪些存储引擎,它们的区别mysql索引在什么情况下会失效mysql在项目中的优化场景&# ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 深入理解一致性哈希算法及其应用
    本文详细介绍了分布式系统中的一致性哈希算法,探讨其原理、优势及应用场景,帮助读者全面掌握这一关键技术。 ... [详细]
  • MySQL 高性能实战教程
    本课程深入探讨 MySQL 的架构、性能调优、索引优化、查询优化及高可用性等关键领域。通过实际案例和详细讲解,帮助学员掌握提升 MySQL 数据库性能的方法与技巧。 ... [详细]
  • 本文深入探讨了MAC地址与IP地址绑定策略在网络安全中的应用及其潜在风险,同时提供了针对该策略的破解方法和相应的防御措施。 ... [详细]
  • 三菱PLC SLMP协议报文详解
    本文详细解析了三菱PLC中使用的SLMP协议报文结构,包括其工作原理、通信流程及报文格式,旨在帮助工程师和技术人员更好地理解和运用这一协议。 ... [详细]
  • 使用C# .NET构建UDP点对点聊天应用
    本文详细介绍如何利用C# .NET框架开发一个基于UDP协议的点对点聊天程序,包括客户端与服务器之间的连接建立、数据传输等核心功能。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • TCP/IP基础知识详解
    本文详细介绍了TCP/IP协议的基本概念,包括网络层次模型、TCP三次握手过程、四次挥手过程以及TCP与UDP的比较。通过这些内容,读者可以更好地理解TCP/IP协议的工作原理。 ... [详细]
  • 利用GitHub热门资源,成功斩获阿里、京东、腾讯三巨头Offer
    Spring框架作为Java生态系统中的重要组成部分,因其强大的功能和灵活的扩展性,被广泛应用于各种规模的企业级应用开发中。本文将通过一份在GitHub上获得极高评价的Spring全家桶文档,探讨如何掌握Spring框架及其相关技术,助力职业发展。 ... [详细]
  • 本文深入探讨了网络编程中的基本概念,如指针、引用和可重入函数,并详细介绍了OSI七层模型和TCP/IP四层模型的功能与协议。同时,文章还对比了HTTP与HTTPS的区别,分析了HTTP请求报文的结构,讨论了TCP与UDP的主要差异,以及滑动窗口协议的工作原理。 ... [详细]
  • 本文详细记录了作者从7月份的提前批到9、10月份正式批的秋招经历,包括各公司的面试流程、技术问题及HR面的常见问题。通过这次秋招,作者深刻体会到了技术积累和面试准备的重要性。 ... [详细]
  • 本文详细介绍了如何设置局域网,并确保网络中的所有计算机能够相互访问和共享安装的软件。包括物理连接检查、TCP/IP设置、网络协议配置等多个方面。 ... [详细]
  • 本文详细探讨了电脑重装操作系统后无法访问网络邻居的原因及解决方案,包括检查网络配置、权限设置等多个方面。 ... [详细]
author-avatar
Hb何逸秋yB
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有