哈哈,刚刚答完题就看到了这个问题,这可是问对人了,我们就是给**公司做全面技术服务的,今天有点累了,就把我刚刚写的答案的一部分贴上来,希望对你有帮助!
--------------------------------------------------分开----------------------------------------------------------------
火热的游戏直播行业,为什么优酷土豆爱奇艺这样视频站没有抓住机会? - 张腾的回答
一,视频直播与视频点播
很多人凭着第一印象,觉得两个名词里面都有视频,就认为两者实现的方式和技术要点是一样的,众多视频点播网站巨头(题主所说的:优酷,土豆,新浪等)都在探索视频直播的道路上吃了大亏,也是因为对两者之间区别的认识不够深刻。
视频点播对于视频本身的要求是:高质量(高码率)和流畅(低卡顿,即加载时间)
视频直播对于视频本身的要求是:清晰,流畅,低延时(无互动,不直播,把延时控制在3秒以内,甚至1秒内意义重大,这一点很多直播平台还都没有认识到)。
注意到区别了?低延时,也就是实时性,差之毫厘谬以千里。
为什么低延时在传统视频点播平台运营商那里会遇到大麻烦,需要讲一下现在所有视频服务的骨架CDN的前世今生,请仔细阅读下面的文字:
随着Internet的迅速发展,用户数量和信息量快速增长,为了从技术上全面解决网络带宽小,用户访问量大,网点分布不均匀等问题,1998年诞生了解决问题的方案,即CDN(内容分发网络)。
CDN技术采用了分布式缓存/复制、负载均衡、流量工程和客户端重定向等技术,设立若干分支节点,尽量将用户请求的内容存储到距离用户“最后一公里”的边缘节点上,在Internet上构筑一个地理上分布的内容分送网络,将信息资源向网络边缘推近,用户可以在 “最近”的位置快速访问到所需的内容,继而提高了终端用户的访问速度和服务质量。
CDN整体框架的顶层设计是为了解决文件的分发和传输问题架设的,系统起初是服务于文件而非实时的流媒体数据。在处理流媒体数据时,现有方案仍沿用了传统的分发原则与模式,无法满足互动直播高质量低延时的要求。
读到这里,你仿佛知道了他们之间的差异。但是,如果你认为CDN是现在主要的技术瓶颈,那你就错了,CDN只是个基础,更纠结的还在下面
二,流媒体传输协议
传输层协议主要讲下面三种
1.TCP
TCP为点对点的协议,虽然能保证了数据传输的可靠性,但是对服务器资源耗费较大,在数据流大的场合难以保证数据流传输的实时性。
2.UDP
UDP为不可靠传输协议,不需要维护连接状态,也不认为每个数据包都必须到达接受端,因此网络负荷比TCP小,传输速度也要比TCP快;但在网络越拥挤时,越有更多的数据包丢失。
3.RTMP
RTMP一个专门为高效传输视频,音频和数据而设计的协议。它通过建立一个二进制TCP连接或者连接HTTP隧道实现实时的视频和声音传输。
现在传统的视频直播都使用的RTMP传输协议,因为不管是UDP还是TCP协议,都不适用于流媒体的实时传输。但是使用RTMP+CDN或云的方案也存在根本性的缺陷。因为不管事RTMP还是CDN, 都源自服务于文件传输的方案,问题主要有以下几个
a:现在做的最好的用RTMP来搭建视频直播方案,其延时也最多能达到5秒左右,实际上,如果要保证视频的流畅(低卡顿)和清晰(高码率),5秒的延时都很难达到,有的方案甚至在7-8秒,直播的很大一部分意义在与互动和实时性,互动对于延时的要求,最佳时间是在2-3内,再长就会体验很差(大家可以自己试一下),而对于很多行业,直播的要求甚至要在半秒以内才有意义,这是现有方案完全无法满足的。
b:对于客户资源的最大程度利用,这一点涉及公司的方案设计,不再详述,有兴趣的可以私信。
c:CDN节点完全属于盲点,直播流浪涌入,一旦某个节点出现波动,只能被动地让用户承担极差用户体验的风险(卡顿,模糊),而对于网络状况本身却处于黑箱状态,不可管,不可控,受制约严重。我相信这一点有相关运维经验的知友都深有感触。
d.e.f....太多字了不写了
我想上面的答案应该能让题主明白,为什么优酷这种巨头做不好“一点微薄的工作“
简而言之
1.运营能力不能代表技术开发水平
2.流媒体实时传输这块领域太窄,不要说优酷,全世界真正深入研究的公司或团体,据我所知,除了我们公司还有一家美国的公司在做,不过他们和我们做的方向还是不一样,这是后话了。
3.互联网节奏太快,很多巨头的想法是,加大投入,缩短研发周期,立竿见影地把流媒体直播这个坑填平,但他们没有想到的是,一个坑后面还有无数个坑,坑里面还有坑,甚至方向可能都错了,赶时间赶进度的初衷反而被这种浮躁的心态给牺牲了。
---------------------------------------------
刚刚又仔细看了一遍题目,答案好像只回答了题主的一部分疑问,等有时间把坑填满!