实时多人视频技术

手机前后摄像机同时拍摄技术

智能面部识别技术

视频压缩技术

数据备份和传输技术

用户敏感信息规避技术

面部加工技术

声音处理技术

实时多人视频技术

WebRTC

手机前后摄像机同时拍摄技术

仅支持市场1/3的机型

是否支持双镜头拍摄,受制于主板上的ISP芯片个数。

当前支持的只有高通晓龙801以上的芯片。搭载这些芯片的Android机包括小米,VIVO,三星,不包括华为,OPPO。

高通芯片主机列表:https://www.qualcomm.cn/snapdragon/devices/all

iOS机要求iPhone11以上版本。

参考代码:https://bitbucket.org/jens_grubert/androiddualcameracapture/

智能面部识别技术

可使用OpenCV+ Dlib + TensorFlow Lite进行面部识别,技术已经成熟得以验证,但主要问题在于手机上的性能

下图是 480*360 像素的视频,在手机上的单帧识别耗时

        HOG算法(最常见算法)    MobileNet V2-ssd算法  BlazeFace算法(网上资料很少)
华为P20       800 ms          20 ms           5 ms
iPhone7     460 ms          5 ms            2 ms

图像牌面识别则需要额外的霍夫检测,耗时和上图接近

于是计算可知

  • 假设使用MobileNetV2算法,则单帧检测时间20ms + 20ms,一秒可处理 1000 / 40 = 25帧
  • 但视频解帧,组流压缩,以及识别后的图片加工都需要时间。如果要保持一秒24~30帧,则需要很高的编码优化投入

视频压缩技术

多摄像头成像会生成多个视频流,对网络传输会形成巨大压力,我们需要对视频进行合适的压缩

  • 建议使用H.265 或VP9压缩,比现有H. 264视频流小70%带宽
    • iPhone7+,Android5.0+均支持H.265
    • 各主流浏览器均无法支持H.265
    • H.265计算量略大,会更加费电
  • 需要对视频进行降帧,必须限制在24~30帧以内
  • 需要降低视频分辨率,最大限制在640*480之内

数据备份和传输技术

为防止游戏过程中部分用户进行语音,动作等行为作出违规行为,破坏游戏平衡,所有玩家音频视频文件应当被存储,可被追溯。

这里依然建议保存格式为H.265格式

中国沿海4G带宽28Mbit/s,西部8~10Mbit/s

                        MPEG2   H.264   H.265
25FPS/480*320/1 小时      5GB     0.9GB   0.4GB
3玩家/6摄像头/1小时        30GB    4.8GB(需12Mbit/s网速)  2.4GB(需6Mbit/s网速)
3玩家/6摄像头/1月         22TB    3.4TB   1.7TB

用户敏感信息规避技术

想屏蔽第三方弹出信息,只能在第三方进行设置,跨进程修改设置是iOS/Android系统设计理念禁止的。所以必须用非常规手段进行。

  • iOS上必须使用函数hook方式,可使用RSSwizzle或者fishhook进行runtime的函数替换,这就强制要求iOS有root权限才能实现。
  • Android上则需要选择 Xposed 库,用它截取App弹出消息,即可达成需求。
    • 注:Xposed库在之前调研开启Android的前后双摄像头时,就属于必须使用项。
    • 注:Android上这个功能的实现已有实际解决方案的代码。

面部加工技术

马赛克:确定面部区域

面部添加挂饰:需要定位面部器官

明星脸替换:Procrustes分析

Deepfake:点云PCL处理

分步骤完成面部加工,每一步都比前一步性能开销更大

音频变声处理技术

使用C++开发可通过JNI支持Android,也可直接支持iOS

使用FMOD或者SoundTouch库对音轨进行调整即可