远程视频狼人杀技术调研
实时多人视频技术
手机前后摄像机同时拍摄技术
智能面部识别技术
视频压缩技术
数据备份和传输技术
用户敏感信息规避技术
面部加工技术
声音处理技术
实时多人视频技术
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库对音轨进行调整即可