大流量直播应对方案
随着国内网民数量指数级增长,网络带宽环境的不断好转,直播网站如雨后春笋般大量泉涌,中国网络视频市场规模不断壮大。
网络视频的主要应用有视频点播、视频直播、视频通话会议等。
在表现形式上,视频直播包括现场演唱会的直播、新闻发布会的直播、奥运会的直播、电视剧的直播、个人表演show,学术论坛交流会、各类技术培训等;在技术上,视频直播不用像视频点播那样需要进行分段、转码、 发布等步骤,它可以做到节目播放的实时性;在播放形式上,用户只要具有一个可以上网的设备,可以是电脑、手机等,无论在何处只要网络环境允许,都可以及时地欣赏到正在直播的节目。
由此可见,视频直播以其具有的丰富性、时效性和 自由性等特点吸引着大批网络用户,它具有着传统媒体和视频点播所没有的优秀品质。因此,业内网站纷纷加大视频在清晰度、网络延时、流畅度等方面的研究,并投入资源大力发展。可以说,视频直播技术的架构直接决定着平台的整体的可用性、稳定性,也可以说架构是平台的基石。
视频直播流媒体技术
以前视频网站大多采用Microsoft的Media Server产品进行直播,并通过在网站页面里嵌入 Media Player进行播放。编码格式则多采用 wmv 文件。但是在实际应用中,人们发现采用该技术处理的流媒体视频画面模糊,视频延时大,用户体验不令人满意。随着 FMS 软件的技术的成熟,视频网站开始向FMS流媒体技术转移。 FMS 的全称是 Flash Media Server,它是 Adobe 公司的产品。随着人们对在线视频的需求激增,Adobe 公司的 Flash Media Server 系列产品已成为流视频和实时通信领域业界领先的解决方案。尤其当 FMS Server版本升级到3.5后,其性能和稳定性得到大幅提升。采用FMS流媒体技术的视频直播画质较之以前更清晰,画面更流畅,从而得到了大多数用户的认可和好评。视频在进行网络直播时需要经过信号采集、转码和 Flash Media Server 等过程,最后呈现在用户面前。
(1)采集:视频直播的数据源一般来网络和摄像头的视频流。 通过采集系统将视频采集下来,然后通 TS OVER IP 方式推送所采集的信息到转码系统
(2)转码:转码系统将接受的信号转码为 FLV 格式, 然后通过 RTMP 协议推流到 FMS。
转码系统目前常用的有两种方式:
a.软件方式:如Ffmpeg,FMLE,
Ffmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或 GPL 许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整的解决方案。它包含了非常先进的音频、视频编解码库 libavcodec。由于其提供了非常清晰的画质,但是由于其安装在 Linux 服务器上,不方便移动,所以适合直播固定的节目,例如网络视频、有线电视的直播等。
FMLE 为 Adobe 公司提供的一个免费的实时视频和音频捕捉软件。它是一个媒体编码器,它可以将音频和视频实时流式传送到 Adobe Flash Media Server 软件中。软件安装使用非常简单,只需要一个笔记本电脑和一个 USB 摄像头,通过此软件就可以进行非常清晰的直播,非常适合不同形式的音乐会、发布会等实时活动。
b.硬件方式: 由视频转码公司设计的硬件转码。
解码市场:H.264解码产品,主要有:支持H.264标准的解码集成电路,含专用解码芯片和系统芯片SoC,支持H.264标准的解码软件,用于各类电子产品。
编码市场:由于H.264出色的编码效率,使其很快就被以视频监控设备为主体的编码设备市场所接受。中国是世界上最早采用H.264进入视频监控市场的国家之一。随着视频监控设备向高清网络摄像机的转移,H.264技术将在未来多年里在该市场占据统治地位。
H.265编解码:目前由于2K甚至4K/8K的视频清晰度的演变,类似清晰度的视频也应用到了直播领域,但是由于2K以上清晰度体积较大,直播又是需要大带宽才能支撑,所以才有了H.265的编码格式,相当于在保证清晰度的情况下提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度。但就目前来说,大部分编解码产品大部分还是基于264进行工作的,普及265需要一点时间,不过随着5G的发展以及265编码带来的好处,应该不需要多长时间就会全面应用。
大型视频直播架构
FMSS 不能作为大型直播的原因是因为它不能将一个直播流分发到多个 FMS 服务器上。即只能一台 FMS 服务器服务直播,同事并发的用户就是有限的,只能抗住上千左右的用户量。 Rtmpdump 是一个匈牙利人编写的基于 rtmp 协议的客户端程序。通过它,可以将rtmp 的直播流下载成为一个 flv 格式的文件。架构本直播的思路是: 使用 rtmpdump 中的 rtmp 协议部分,并将程序改造为多线程的模式。 一个线程从 fms 源拉下来直播流,n-1 个线程将这个直播流分发到其他 fms server 。即实现直播流的代理转发功能。这样就可来自www.vhall.com 以通过多个 fmss server 来分担用户的请求压力,完成大型直播。上面的方法虽然解决了大量用户的请求压力,但是还不能满足用户的视频体验。因为用户是属于不同地区和运营商的。比如广东电信的用户访问北京联通的 FMS Server 来观看视频,视频效果会非常差。因为运营商互联的带宽非常少,经常在堵塞状态。因此如果要满足用户的视频体验,不仅要解决服务器压力问题,还要解决跨省、跨运营商的网络质量问题。解决跨省、跨运营商的的方式就是采用CDN。
CDN:CDN的全称是 Content Delivery Network,即(内容分发网络)。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。其目的是使用户可就近取得所需内容,解决 Internet 网络拥挤的状况,提高用户访问网站的响应速度。方法就是就是在不同省、不同运行商的 IDC 中放置服务器,让用户就近访问。CDN 的一个关键技术就是调度系统。
调度系统:根据用户的 IP 以及节点的带宽和服务器负载情况,将用户的请求调度到最合适的节点,既满足了用户体验,又节省了 CDN 成本。调度系统可以基于 nginx 模块的方式开发。调度系统保存一份精确的全国的 IP 库,并配置好一个调度策略文件。内容就是不同地区,不同运营商的用户访问最好节点的对应表。另外有一个各个节点的带宽和服务器负载的上报接口,可以让调度实时了解各个节点的情况。 当用户来请求调度,调度根据用户的 IP,查找 IP 库,了解到它属于哪个地区哪个运营商,并查找调度策略,了解到可以服务它的几个节点,通过节点查询接口,了解到相关几个节点的网络情况,服务器负载情况,然后将这些用户调度到满足条件的节点。
上述方案实现了一个不仅可以使直播视频画质更加清晰、画面更加流畅,同时使用CDN网络增强了用户的良好体验,不同地区的用户会被转到就近到本地的服务器上,实现了智能调度。从而为大用户量、高并发的实时视频直播提供了技术上的保障。
山东云管家,阿里云北方大区一级经销商,双11怎么玩儿最畅快?关注公众号:ygjdata
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
全球首个开放应用模型 OAM 开源 | 云原生生态周报 Vol. 23
作者 | 临石、元毅、冬岛、衷源、天元 业界要闻 全球首个开放应用模型 OAM 开源 2019 年 10 月 17 日,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Open Application Model (OAM)开源项目。OAM 的愿景是以标准化的方式沟通和连接应用开发者、运维人员、应用基础设施,让云原生应用管理与交付变得更加简洁,高效,并且可控。 KubeVirt 进入 CNCF Sandbox KubeVirt尽管容器技术提供了各种便利,但是在特定情况下使用 VM 仍然是不可避免的(编者按:VM 只是选择之一,不同的安全容器解决方案都可以在不同方面代替单纯的 VM)。来自 Redhat 的 KubeVirt 项目可以提供在 K8s 集群内部准备
- 下一篇
五分钟内免费体验 EDAS ,完美解决微服务痛点
2019 月 10 月 3 日,Spring Cloud Alibaba 正式 "挂牌" Spring 官方,成为推荐的 Spring Cloud 规范实现之一,官宣地址点击这里。 目前,已包括爱回收、东家、Acmedcare+、生学教育、联想云、凤凰网、平安科技等企业正在通过 Spring Cloud Alibaba 构建自己的微服务架构,并能无缝连接到阿里云的各类服务。 如果您有计划将 Spring Cloud Alibaba 部署到云端,那么本文将提供一种 5 分钟内就能免费体验阿里云 EDAS 的方法。阅读本文,您将了解到如何使用 EDAS 公网体验环境,并了解部分 EDAS 的功能的详情介绍,学习到如何通过 EDAS 来解决 Spring Cloud Alibaba + Dubbo 构建微服务时遇到的痛点。 微服务架构在生产环
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Hadoop3单机部署,实现最简伪集群
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果