ARTICLE · 1255347
实战|Kotlin原生实现:把旧安卓手机改造成
实战|Kotlin原生实现:把旧安卓手机改造成
实战|Kotlin原生实现:把旧安卓手机改造成
旧安卓手机别吃灰了,我拿 4000 行 Kotlin 把它改成了局域网摄像头。不靠 FFmpeg,纯原生跑通 Camera2、OpenGL 和 RTSP。
核心是一套 GL 管线同时管预览和编码。以前两套链路,横竖屏一切换,预览和推流画面根本对不上。现在旋转镜像只改一处,两边画面严丝合缝。
坑全藏在底层细节里。分辨率绝不硬编码,直接取相机、屏幕和编码器三者交集,选错档位也不会黑屏崩溃。RTSP 分片时,首片必须剥离原始 NAL 头,不然播放器一播就局部花屏。
网络层也做了隔离。每个客户端独立队列,谁家网慢卡住了,最多丢自己的非关键帧,绝拖垮不了主线程。息屏后靠前台服务保活,退后台只解绑预览 Surface,推流照常跑。
实测老华为 1080P30 能稳在 4Mbps,还能扛住两路同时拉流。代码已开源,家里闲置机直接刷上就能用。
原文尾部有完整的代码地址,可编译生成。
原文实战|Kotlin原生实现:把旧安卓手机改造成RTSP网络摄像头
上海,6小时前,















































































