iOS 视频直播的学习之路 ---- 直播大时代

首先,今天偶尔看了庄明浩先生的一篇演讲,大概内容以下(想看完整版的在这里 https://zhuanlan.zhihu.com/p/20717041):html

      直播大概是最近一段时间被资本市场疯狂关注,如今咱们看到的这些公司上线都已经有段时间.以斗鱼为表明的直播平台,自14年创立到 如今已经有俩年的时间了。映客这一波为表明公司 ,创立的时候应该是15年年初。在15年下半年的时候,他们火过一波。今天为何关注呢?有不少的缘由,有资本市场的缘由,有行业发展的缘由,固然也有这些公司估值的缘由等等。做为一个观察者,可能更可能是一个用户。直播这俩年行业发展的很快,因此有不少新的事情。算法

      我的感受:数据库

      1.直播将来会成为全部人的“标配”,甚至不局限在视频行业;编程

      2.远期是整个大视频领域的竞争;缓存

      3.全部人的目标其实只有一个:抢占用户的时间;服务器

      4.全部公司对直播的出发点只是秒开,流畅,美颜这三点;运维

那么问题来了,对于创业公司 ,“直播系”的大时代有可能成为平台吗?大视频领域也好,大社交领域也好,都已经有巨头存在了。独立的直播类公司比较难以独立生存。在中国,直播分为俩个派系,一是游戏拓展娱乐领域的在线直播平台;其次就是以映客 、花椒直播为表明的以手机为载体、强调人人参与、更强调社交的移动社交直播,这俩类公司有可能成为独立的平台,跟全部的娱乐也好,社交也好,并行在发展,创业公司基本集中在这俩个类目里面。中国有几个数据,你们可能没有据说过。1.中国真正意义上的直播,在各家直播平台作直播,或者注册经营的公司,大概在150万人左右,这是什么意思?比中国的出租司机都要多。咱们全部的直播平台加在一块儿,覆盖的用户大概在三四千万左右,一天可能比打车的人还要多。简单的来说,中国的网民大概有六点几亿,游戏用户大概有四点几亿,不到点五亿,一天全部的平台加起来,已经跑到3000万了。俩年的时间,游戏的人群吃完以后呢?分布式

好了,下面进入正题:性能

如何搭建一个完整的视频直播系统?一个完整的直播系统大体包含这几个环节:采集,前处理 ,编码,传输,解码和渲染。在两端 传输的过程当中再加上一个服务端处理。大体模型以下:编码

在主播推流端涉及到的环节有采集、前处理和编码,在观众端涉及到的环节就是解码和渲染,在这俩个端之间创建起传输通道的则是服务端,它负责接收主播端的推流,将其处理以后分发给观众播放端 :

1.采集

对iOS是比较简单的,Android则要作些机型适配工做,PC最麻烦各类奇葩摄像头驱动,出了问题特别很差处理,建议放弃PC只只支持手机 主播,目前几个新近的直播平台都是这样的。

参考教程:斗鱼游戏直播教程-OBS直播软件篇[推荐]

2.前处理

如今直播美颜已是标配,80%的主播 没有美颜根本无法看。美颜算法须要用到 GPU编程,须要懂图像处理算法的人,没有好的开源实现,要本身参考论文去研究 。难点不在于美颜效果,而在于GPU占用 和美颜效果之间找平衡。GPU虽然性能好,可是也是有功耗的,GPU占用过高会致使手机发烫,而手机发烫会致使 摄像头采集掉帧,iPhone6尤为明显,由于iPhone6的CPU和前置摄像头很近。

3.编码

确定要采用硬编码,软编码720p彻底没但愿,勉强能编码也会致使CPU过热烫到摄像头。硬编码 兼容性又是一个大坑,Android上要有人去填。编码 要在 分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点。

4.传输

本身作不是很现实,交给 CDN服务器商,也就是贵了点,相信 有志于作直播平台改变世界的你不差钱。假设2W PCU大约每个月带宽费用 100万左右,由于清晰流畅的720p要1.5mbps左右。CDN只提供了带宽和服务器见得传输,发送和接收端的网路 链接抖动缓冲仍是 要 本身写的。不想要卡顿,必然要加大缓冲,会致使延迟高,延迟高影响互动性,要作权衡。

5.解码

也确定要硬解码,目前手机支持硬解了,只是安卓上还有兼容性 大坑要填。

6.渲染

这个难点不在于绘制,而在于音画同步,目前几个直播作的都很差, 此外音频还有几个坑要填,好比降噪,音频编码器的选择,各类蓝牙耳机,各类播放模式的适配等,若是你想作主播和观众连线聊天,还要有个回声消除的问题。

后台还有数据库 ,缓存,分布式文件存储,消息队列,运维系统等。

相关文章
相关标签/搜索