查看原文
其他

直播技术初窥

大话小数 中国金融电脑+ 2022-12-13

验“金”室


未来,直播与各行业的结合会碰撞出许多新的火花。对于金融行业来说,股市实时分析、理财产品推广、财经新闻报等更多场景等待着我们不断去探索。



2020年初的这场疫情中,火神山与雷神山医院的快速建成,不仅收治了大量病人,而且加快了抗“疫”的进程,更向世界彰显了“中国速度”,展示出中国人在危难当前的决策力、行动力和凝聚力。


在两座医院的建设过程中,七千万宅家网友纷纷化身“云监工”,还为施工现场的房屋、设备起了“呕泥酱” “大黄” “送高宗”等稀奇古怪的名字,用幽默化解不能出门的无聊与焦虑。



这次超过半亿人“云监工”的盛况,正是借助了央视新媒体24小时不间断的视频直播才得以实现,现场的固定摄像头被大家戏称为“摄政王”。


其实,网络视频直播出现的时间并不算短,早在2005年,国内就出现了以聊天及唱歌为主的秀场直播平台。后来随着网民数量不断提升,以及网络技术、直播技术与硬件设备的发展,渐渐衍生出了多种不同的直播形式,如电子竞技直播、移动直播、电商直播、活动直播等。除了供人们娱乐,直播也推动了许多产业的发展。直播带货使得很多滞销的农产品找到了销路;直播课堂让广大学生在疫情期间 “停课不停学”……


那么,视频直播究竟是如何实现的呢?


一个基础的直播流程可以概括如下:采集、前处理、编码、推流、分发、拉流、解码、播放。很多网络直播平台还具备IM、连麦、抽奖等互动功能。


图1  典型云直播解决方案流程


1

采集

采集是视频直播的第一步,即通过设备采集音频和视频信息。其中,摄像头采集是较为常见的视频采集方式,其设备包含我们常用的iOS、安卓等移动设备、专业的摄影摄像设备、安防摄像设备等。在课堂、游戏等直播场景中,还涉及了屏幕采集。被广泛使用的录屏工具包括OBS、XSplit、各直播平台提供的直播助手等。

2

前处理

视频与音频采集完成后即可获得直播的原始数据,为加强效果,现有的直播应用通常会集成一系列的前处理过程,如美颜、滤镜、水印、混响效果、声音及视频特效等。以美颜中的磨皮技术为例,常见的磨皮处理借助了图像处理中的去噪算法去掉人脸中的噪点或对面部做模糊处理。为了提升美颜的质量,人脸识别、器官检测等新技术也被用于直播处理当中。

3

编码

完成了音视频源数据的处理工作后,接下来就是对数据进行编码和封装。视频编码可大大压缩音视频数据的大小,对于音视频的实时传输意义重大。目前常用的视频压缩标准有H.264和VP9等,压缩后的视频被封装为.mp4、 .flv等格式准备进行传输。

4

推流

顾名思义,即把音视频流推送到服务器上。常用的直播推流协议有HLS、RTMP、FLV等。


  • RTMP(Real Time Messaging Protocol,实时消息传送协议)是目前直播平台广泛使用的主流协议,其传输过程中是将音视频拆分成更小的消息块单元,再将分开的消息块通过TCP协议传输,最后接收端再将消息块恢复成流媒体数据。


  • FLV(Flash Video)协议由 Adobe 公司主推,是一种在网络上传输的流媒体数据存储容器格式,相对简单轻量。FLV 由The FLV Header、The FLV Body(包含多个FLV tag)组成,并通过HTTP来传输FLV音视频数据。


  • HLS(HTTP Live Streaming)是由苹果公司提出的基于HTTP的流媒体网络传输协议,原理是将流分成小的可通过HTTP下载的文件,同时提供一个 m3u8 索引表,使客户端可以顺序拉取媒体文件进行播放。


RTMP、FLV、HLS直播协议比较见表1。


表1  RTMP、FLV、HLS直播协议比较


推流过程需要借助移动端的推流软件或SDK,台式机等则需要借助推流工具,例如前文提到的OBS、XSplit等。

5

分发及拉流

服务器端除了音视频流的优化、混流、内容鉴别等,在观众拉取音视频流之前最重要的一步就是CDN分发。CDN(Content Delivery Network,内容分发网络)其实就是在用户与服务器之间添加了缓存机制,在对延迟要求不是特别严格的场景下提高用户访问的速度和稳定性,降低网络拥塞,避免网站由于用户访问量过大导致的崩溃。其原理就是通过中心站点的负载均衡、调度等,将网站内容分发(缓存)到各地的多个边缘节点,使用户可以就近获取所需的内容。


图片来源:百度百科

简单概括这一过程:用户经过CDN从发起Web请求到返回请求数据的过程,相较于日常的网络请求,区别就在于DNS会将域名交给CDN专用的DNS服务器,再通过全局负载均衡设备访问该请求,由全局设备就近选择带有请求数据且具备服务能力的服务器节点,并将该服务器IP返回给用户。该缓存服务器响应用户请求,数据(音视频流)就被拉取到本地了,获取到的数据通过SDK及播放器就是我们所看到的直播内容了。



以上所介绍的不过是直播技术的冰山一角,这个过程看似简单,其实完整平台的搭建存在很多技术难点,如原始音视频采样数据的压缩处理、编解码、实时通信与直播的结合、终端兼容、播放器兼容、权限管理、数据监控、各类礼物/支付系统、人工智能内容鉴别/美颜/语音图像识别等。目前,市面上已经有很多较为成熟的直播云服务,通过集成SDK快速搭建直播平台也是个很好的选择。


未来,直播与各行业的结合会碰撞出许多新的火花。对于金融行业来说,股市实时分析、理财产品推广、财经新闻报等更多场景等待着我们不断去探索。


更多精彩内容






FCC30+

长按左边二维码

关注我们不迷路



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存