Android IP 摄像头 / 推流应用(包名 com.pas.webcam)。
Kotlin 自研推流栈(无 RootEncoder / 无 MediaCodec 视频编解码):
| 环节 | 技术 |
|---|---|
| 采集 | Camera2 + AudioRecord |
| 视频编码 | OpenH264 |
| 音频重采样 / AAC | FFmpegKit 6.0 LTS |
| 推流 | 自研 RTMP(com.pas.rtmp) |
| 本地预览 | HTTP MJPEG / 快照 / 网页控制台(NanoHTTPD) |
| 录像 | OpenH264 + AAC → MP4(含循环录像) |
- 浏览器打开手机 HTTP 服务观看实时画面
- RTMP 推流到自建或第三方服务器
- 手动 / 循环录像、视频存档管理
- 前后摄像头切换、变焦、LED 手电筒等常用控制
- Windows / macOS / Linux
- JDK 17+
- Android SDK(API 33 建议)+ NDK(见
docs/NATIVE_DEPS.md) - 真机调试建议 Android 8.0+
git clone https://github.com/laybourne/pas-webcam.git
cd pas-webcam
# 配置 SDK:新建 local.properties
# sdk.dir=...
# ndk.dir=...
.\gradlew.bat assembleDebug原生依赖准备步骤见 docs/NATIVE_DEPS.md。
首次推送到 GitHub 可参考 tools/publish-github.ps1(需已安装并登录 GitHub CLI)。
仓库包含
third_party/openh264、third_party/ffmpeg-kit-next(AAR / 头文件)以及lib/ffmpeg的jniLibs。
根目录大型.zip、本地android-sdk、构建产物不会提交到 Git。
手机开启服务后,同一局域网访问:
http://手机IP:8080/
http://手机IP:8080/video
http://手机IP:8080/shot.jpg
在 App「连接设置」中填写:
rtmp://服务器/live/流名
然后开始推流。
本项目以 MIT License 发布。
第三方组件遵循各自许可证(OpenH264、FFmpeg / FFmpegKit、NanoHTTPD 等),使用时请一并遵守。