夜雨聆风学习资料网

ARTICLE · 1255347

实战|Kotlin原生实现:把旧安卓手机改造成

实战|Kotlin原生实现:把旧安卓手机改造成

实战|Kotlin原生实现:把旧安卓手机改造成

旧安卓手机别吃灰了,我拿 4000 行 Kotlin 把它改成了局域网摄像头。不靠 FFmpeg,纯原生跑通 Camera2、OpenGL 和 RTSP。

核心是一套 GL 管线同时管预览和编码。以前两套链路,横竖屏一切换,预览和推流画面根本对不上。现在旋转镜像只改一处,两边画面严丝合缝。

坑全藏在底层细节里。分辨率绝不硬编码,直接取相机、屏幕和编码器三者交集,选错档位也不会黑屏崩溃。RTSP 分片时,首片必须剥离原始 NAL 头,不然播放器一播就局部花屏。

网络层也做了隔离。每个客户端独立队列,谁家网慢卡住了,最多丢自己的非关键帧,绝拖垮不了主线程。息屏后靠前台服务保活,退后台只解绑预览 Surface,推流照常跑。

实测老华为 1080P30 能稳在 4Mbps,还能扛住两路同时拉流。代码已开源,家里闲置机直接刷上就能用。

原文尾部有完整的代码地址,可编译生成。

原文实战|Kotlin原生实现:把旧安卓手机改造成RTSP网络摄像头
上海,6小时前,

相关学习资料