1. 直播系统开发公司 > 直播平台搭建 >

直播分两种:单向直播和互动直播

  直播分两种:单向直播和互动直播,单向直播就是主播推流,观众观看,观众只能看到一个主播的画面,这种实现难度相对小一点,基本上都是用标准的rtmp。
 
  互动直播观众可以与主播互动,其他观众可以看到主播和连麦观众的画面,这个实现难度较大,很多公司是借助webrtc来实现的
 
  现在很多厂商都开放了自己的直播SDK,比如腾讯视频云SDK,网易视频云SDK,可以让公司的研发同事去比较一下。
 
  一个直播系统大概可以分为一下几个模块,媒体模块,服务模块,管理模块。媒体模块是其中的核心,又可分为采集,前处理,编码,传输,解码,渲染这几个环节。
 
  1、采集
 
  采集是直播系统中的第一环节,获取视频源。 因为iOS是软硬件种类不多,官方也提供了稳定可靠的接口,比较简单。 Android因为机型种类繁多,需要适配机型,会是很大一部分工作。 而PC也面临各种摄像头驱动,难点在于机型适配。
 
  2、前处理
 
  主要用于图像美化,风格化,图像处理方面。除了秀场需求以外,在UGC内容生产方式下,大量的内容对美颜都有较高的要求。美颜简单的可以通过美颜镜头,但局限性大,限于PC端的主播,更好的办法是通过软件实现,需要图像处理方面的人员,美颜算法需要需要用到GPU编程, 难点在于美颜效果是否自然,GPU占用与效果的平衡。GPU用于高性能计算,但功耗也相对高,需要考虑到手机温度对数据采集的影响。图像处理不仅仅是美颜,在交互中可能会涉及到滤镜,人脸识别,人物风格化等,使得客户拥有更好的互动体验。目前iOS上比较好的图像处理库是GPUImage,提供了丰富的预处理效果,也可利用该库自定义设计。Android上也提供了功能强大的图像处理库grafika。
 
  3、编码
 
  在编码方面,有两种编码方式,硬编码(硬件)与软编码(软件)。编码主要难点有两个:1、处理硬件兼容性问题。2、在高 fps、低 bitrate 和音质画质之间找到平衡。iOS 端硬件兼容性较好,可以直接采用硬编。而 Android 的硬编的支持则难得多,需要支持各种硬件机型,推荐使用软编。
 
  4、传输
 
  传输涉及系统的多个部分,连接主播端,服务端,客服端等多个部分。 传输效率高与否决定直播系统的性能好不好,传输是直播系统非常重要的技术核心。
 
  涉及技术或协议:
 
  传输协议:RTP与RTCP、RTSP、RTMP、HTTP、HLS(HTTP Live Streaming)等
 
  控制信令:SIP和SDP、SNMP等
 
  5、解码和渲染
 
  拉流获取音视频数据后,需要通过解码器解码,渲染才能在播放器上播放。 H.264和H.265是有所压缩的,在解码恢复之后是缺损的原数据。之前提到的体积最小画质最优的编码参数,就是在这里恢复画质的,该参数组合是非常重要的技术。现在的播放器普遍都需要高清支持,解码也应选择硬解码。iOS能够较好的支持,但Android还需要很多工作去弥补Android在平台差异的缺陷。而在播放端,保证音画同步的同时,保证稳定流畅的直播流量,需要服务端与播放端做调度优化。
 
  以上是媒体模块,还有服务模块的支付,运营,任务等系统,管理模块的客户端设计与维护、后台数据库、后台控制系统等。

本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:http://www.yzccw.com//zhibopingtai/376.html