公司项目需要,在APP上实现屏幕镜像功能,由于该项目会先落地海外市场,考虑版权因素,最后讨论确定不使用第三方成熟方案(乐播),而是自主开发。
几种主流的技术实现方案:
1、录屏+TCP传输
弊端:延时大,无法满足项目需求
2、录屏+RTMP
用rtmp,手机作为推流端,将视频推给rtmp服务器,vlc等客户端可以直接播放,但是这样做还需要一个流媒体服务器,如果通过流媒体服务器中转,延迟大。
3、录屏+RTSP+RTP
思路是:手机端作为rtsp服务端,vlc作为客户端,通过rtp协议来传输视频流(H.264编码),这样做就省去了搭建流媒体服务的工作。参考github上的开源项目spydroid。
通过测试,延迟能控制在1秒以内,是否满足需求待确认。
结构简述
app相当于一个rtsp服务器,vlc相当于客户端,通过rtsp协议与app的服务端交互,rtsp交互成功后,setup成功后服务端通过rtp协议开始推流。大概结构如下图所示