三只蛤蟆一对一直播软件开发发展到现在,虽不能说没有技术难度,但其中的搭建环节已相对成熟,即便是在开发中遇到了难点,也有了最基本的解决思路,今天小编就和大家捋一捋,一对一直播软件开发的难点都有哪些?
一、正确认识流媒体
流媒体直播并不是一项简单的业务,它是一个复杂的过程,涉及到文件存储、文件上传和下载、视频音频编码、视频采集、视频转码和分发、视频解码和播放、数据缓存、视频的录制以及负载均衡等,虽然其中的每一个环节在市场上都有了较为成熟的技术,但是要把这些技术综合在一起,转变成一个完善的系统,整体还是比较有难度的。
首先,流媒体直播实时性非常高,并发量和带宽都是非常高的,因此需要的机器资源也比较多。流媒体服务绕不过去的是转码,转码的核心是编解码,如果转码之后和转码之前的码率保持一致,就不需要编解码,只需要转一下封装格式就可以,耗的资源比较少。但是如果需要将流的码率和分辨率进行转换,如转换成普清、高清、超高清等码率格式的直播流,需要将原始直播流先进行解码,然后再进行重新编码,解码所耗的资源是固定的,编码的码率越高,耗费的资源越多。例如一台普通得8核8G内存1000Mbps网卡的服务器,只能支持6路高清转码。大量的转码机器,便会带来几个比较严重的问题:例如要顾及到容错和负载均衡,要对每台机器进行监控,如出现故障机器,就及时用其它机器进行替换,从而把转码任务分配到负载低的机器上等。
其次,流媒体直播的流程非常长,任何一个环节出现问题都会导致直播不成功,中间环节这么长,要保证不出问题,还是非常难的。因此,流程监控也是流媒体直播绕不过去的一个问题,它需要对直播流的每个环节,如采集,推流,转码、分发、拉流、解码、播放进行监控。
视频前处理,一般含有人脸识别与增强、图像缩放、图像增强和美白美颜四大块。
一、人脸识别与增强
人脸识别是一种依据人的面部特征(如统计或几何特征等),自动进行身份识别的一种生物识别技术,又称为面像识别、人像识别、相貌识别、面孔识别、面部识别等。通常我们所说的人脸识别是基于光学人脸图像的身份识别与验证的简称。
详细来说,就是用户利用摄像机或摄像头采集含有人脸的视频流,并自动在视频中检测和跟踪人脸,进而对检测到的视频图像进行一系列的相关应用操作。技术上包括视频图像采集、特征定位、身份确认和查找等等。而在一对一直播中,用户端从直播视频中提取人脸中的特征,比如眉毛高度、嘴角等等,再通过特征的对比输出结果。
- 图像缩放
很多人可能会问,在一对一直播软件开发过程中,为什么还需要图像缩放这项功能?其实目的很简单,第一是使得视频图像符合显示区域的大小,例如在直播平台上往往需要将视频窗口缩放或扩大,这一功能在手机平台上用的比较多;第二是为直播视频生成对应图像的略缩图(或动图),用于在平台的不同页面进行样本展示或预览。
三、图像增强
图像增强是直播视频前处理的一个重要内容,在视频(图像)生成,传输或变换的过程中,由于多种因素的影响,造成视频(图像)质量下降,图像模糊,特征淹没,给分析和识别带来困难。因此,按特定的需要将视频(图像)中感兴趣的特征选择地突出,衰减不需要的特征,从而提高图像的可懂度是图像增强的主要内容。
图像增强不考虑降质的原因,而且改善后也不一定逼近原图像,因为它的主要目的有两个:一是改善视频(图像)的视觉效果,提高清晰度;二是将视频(图像)转换成一种更适合人类或机器进行分析处理的形式,从中获取更多有用的信息。
四、美白美颜等附属功能
直播中,美白美颜几乎是所有主播离不开的功能,在一对一直播中需求更甚。其达到的技术目的也和标题一样,但是此项功能可能需要人脸识别与增强技术的支持。此外,很多厂商也提供了美颜SDK插件,不仅是应用于视频前处理,也可在视频解码后进行处理。