X 公司想在网站上提供视频直播服务,经理老王让小安做技术方案调研。 小安花了一个星期时间调研,然后给老王发了封邮件汇报: 老王: 经过大量的调研,我得到了这些非常有价值的信息,汇总给你: 在支持 H5 Video 的浏览器上,播放视频可以使用 H5 Video 标签。 在支持 WebRTC 的浏览器上,可以使用 WebRTC 。 不支持 H5 Video 的浏览器,可以用 Flash 、 ActiveX 、NaCl 、NPAPI 等方式。 直播协议有 RTMP 、 RTSP 、 RTP 、 HLS 、 自定义协议等等。 后台可以用 ffmpeg 、 Red5 、 Live555 、 Darwin 、 Wowza 、 FreeCast 等,还可以采用七牛视频云、网易云信、腾讯云直播等。 小安 发完邮件,小安还蛮有成就感的,才几天啊,我居然了解了这么多技术! 小安正沉浸在"满满的成就感"中,觉得自己真不错的时候,老王大吼:"小安你过来,你给我发的什么玩意儿?结论呢?结论呢?" 小安觉得很委屈,心想老子已经效率很高了,你凭什么不满意? 大家想想,小安做错了什么? 请找出自己的答案。 先别往下看。 先别往下看。 先别往下看。 好啦,现在揭晓答案! 小安的邮件,之所以不符合经理老王的要求,原因在于:只有事实,没有分析,没有行动建议。 这是我们经常犯的错误,搜集一堆信息、数据,不加分析地塞给老板。结果呢,自然是被批得灰头土脸。 要避免这种情况,可以使用"云-雨-伞理论"。 云雨伞理论 "天空出现乌云,眼看就要下雨,带上伞比较好。" 这就是云-雨-伞理论,它是对事实、分析和行动(建议)三者的比喻。 云代表"事实",是用眼睛实际观察到的情况,谁都能看得到天上有乌云。 就要下雨是"分析",是从出现乌云推测出来的。 带上伞是"行动",是从"就要下雨"这个分析得出来的。 当我们向别人提建议时,运用云雨伞理论可以增强说服力,可以避免被否定、批评。 运用云雨伞理论提建议或者作报告的框架如下: 云:现状呈现(信息、数据、图片等) 雨:分析研究 伞:行动方案或建议 现在,让我们运用云雨伞理论帮助小安重写邮件。 请写出自己的版本。 先别往下看。 先别往下看。 先别往下看。 好啦,接下来是我的版本。 网站视频直播方案调研报告 我们要先呈现事实。与网站视频直播相关的事实分为三类: 浏览器的市场份额 浏览器端的直播技术 后台的直播技术 呈现在邮件里,事实部分可以这样写: 老王: 据了解, 目前浏览器在国内的市场份额(2017年12月份数据),Chrome 占 46.49% ,IE 占 17.74% ,QQ 浏览器占 6.24% ,2345加速浏览器占 5.34% ,搜狗浏览器占 4.59% …… 浏览器端可以使用的直播技术很多,Chrome 的最新版本都支持 WebRTC 和 H5 Video;IE 9+,Edge,Chrome,FireFox,Safari 等都支持 H5 Video ;IE 8及以下支持 Active X ,vlc 有 ActiveX 插件;除 Safari 外的主要浏览器都支持 Flash 插件。 后端可以使用的免费直播方案有 Red5 、Live555 、Wowza 、FreeCast ;收费的可以采用七牛、腾讯云直播,他们提供端到端的解决方案。 是不是更清晰了? 接着往下走,来看分析研究。 Flash 技术已经没落,H5 正在普及,从这点来看,浏览器端应该优先考虑 H5 Video 方案。加上苹果主机自带的 Safari 浏览器,不支持 Flash,再考虑到移动平台,不论是 Android 和 IOS ,浏览器都不支持 Flash,所以,浏览器端方案确定为 H5 Video 。 浏览器端实现选择 H5 Video ,与它配套,最成熟的技术就是 Http Live Streaming 。使用 HLS ,需要在后台做切片,切片可以采用 ffmpeg ,http 服务器使用 nginx 。 这是从自己实现直播的角度来分析,可行的方案是 ffmpeg + nginx + H5 Video 。 如果考虑采用商业方案的话,又有七牛视频云、网易云信、腾讯云直播等可供选择。一个简单的选择方法就是看他们的客户案例。 七牛的典型客户有熊猫TV、龙珠直播等,腾讯云直播的客户案例有斗鱼TV、快手等。从案例上看,都是成熟的、可用的、易于扩展的,都能够支持大并发场景。所以,实际选择时,可能还要考虑价格、运维成本、技术支持等因素。 有了分析研究,我们才能知道结论是怎么出来的,别人看到结论,也会觉得"有依据"、"可信"。 那我们的方案建议就是: 经过分析,要在我们的网站加入视频直播功能,有两种方案: 自己研发,用 ffmpeg + nginx + H5 Video 实现 HLS 方案。 采购商业方案,可以考虑七牛或腾讯,要确定方案的话,需要考虑价格、运维成本、技术支持等因素,要进一步接触两家供应商。 那最后,小安的邮件就可能是这样子的: 老王: 你让我调研公司网站加入视频直播的事情,初步结果出来了,给你汇报一下。 【1、事实】 据了解, 目前浏览器在国内的市场份额(2017年12月份数据),Chrome 占 46.49% ,IE 占 17.74% ,QQ 浏览器占 6.24% ,2345加速浏览器占 5.34% ,搜狗浏览器占 4.59% …… 浏览器端可以使用的直播技术很多,Chrome 的最新版本都支持 WebRTC 和 H5 Video;IE 9+,Edge,Chrome,FireFox,Safari 等都支持 H5 Video ;IE 8及以下支持 Active X ,vlc 有 ActiveX 插件;除 Safari 外的主要浏览器都支持 Flash 插件。 后端可以使用的免费直播方案有 Red5 、Live555 、Wowza 、FreeCast ;收费的可以采用七牛、腾讯云直播,他们提供端到端的解决方案。 【2、分析】 Flash 技术已经没落,H5 正在普及,从这点来看,浏览器端应该优先考虑 H5 Video 方案。加上苹果主机自带的 Safari 浏览器,不支持 Flash,再考虑到移动平台,不论是 Android 和 IOS ,浏览器都不支持 Flash,所以,浏览器端方案确定为 H5 Video 。 浏览器端实现选择 H5 Video ,与它配套,最成熟的技术就是 Http Live Streaming 。使用 HLS ,需要在后台做切片,切片可以采用 ffmpeg ,http 服务器使用 nginx 。 这是从自己实现直播的角度来分析,可行的方案是 ffmpeg + nginx + H5 Video 。 如果考虑采用商业方案的话,又有七牛视频云、网易云信、腾讯云直播等可供选择。一个简单的选择方法就是看他们的客户案例。 七牛的典型客户有熊猫TV、龙珠直播等,腾讯云直播的客户案例有斗鱼TV、快手等。从案例上看,都是成熟的、可用的、易于扩展的,都能够支持大并发场景。所以,实际选择时,可能还要考虑价格、运维成本、技术支持等因素。 【3、结论】 经过分析,要在我们的网站加入视频直播功能,有两种方案: 自己研发,用 ffmpeg + nginx + H5 Video 实现 HLS 方案。 采购商业方案,可以考虑七牛或腾讯,要确定方案的话,需要考虑价格、运维成本、技术支持等因素,要进一步接触两家供应商。 -- 小安 这样看起来是不是会好一些? 请记住,要提建议,要作报告,最好采用"事实与现状、分析、行动建议(结论)"这种清晰的结构,效果会好很多。