![](https://source.unsplash.com/random/1024x200) >[success] #### 视频直播 + 视频直播:采集、前处理、编码、传输、解码、渲染 + 采集: 一般是由客户端(IOS、安卓、PC或其它工具,如OBS)完成的,iOS是比较简单的,Android则要做些机型适配工作,PC最麻烦各种奇葩摄像头驱动。 + 前期处理: 主要是处理直播美颜,美颜算法需要用到GPU编程,需要懂图像处理算法的人,没有好的开源实现,要自己参考论文去研究。难点不在于美颜效果,而在于GPU占用和美颜效果之间找平衡。 + 编码: 要采用硬编码,软编码720p完全没希望,勉强能编码也会导致CPU过热烫到摄像头。编码要在分辨率,帧率,码率,GOP等参数设计上找到最佳平衡点。 + 传输: 一般交给了CDN服务商,如:阿里云、腾讯云。 + 解码: 是对之前编码的操作,进行解码,在 web 里需要解码是hls。 + 渲染: 主要用播放器来解决,web中常用到的播放器有video.js,更多:[html5-dash-hls-rtmp](https://github.com/Tinywan/html5-dash-hls-rtmp) + 下面是腾讯云直播方案的整个流程图: ![Markdown](https://tinywan-develop.oss-cn-hangzhou.aliyuncs.com/18-7-8/tenent-live-soluet.png) >[success] #### 流媒体直播功能 + 支持的直播流输入协议是 + RTMP 用于拉取和发布的流 + RTSP 为拉和宣布的流 + 用于HTTP和UDP流的 MPEG-TS + SRT 用于听,拉和集合模式 + UDT 用于听,拉和集合模式 + HLS 为拉流 + 单路路实时编码流传递(RTMP) ![Markdown](https://tinywan-develop.oss-cn-hangzhou.aliyuncs.com/18-7-8/live_streaming_big.png) + 多路实时编码流传递(RTMP) ![Markdown](https://tinywan-develop.oss-cn-hangzhou.aliyuncs.com/18-7-8/rtmp-republishing_big.png)