diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000000000000000000000000000000000000..95aa39ab29ceeb60207e5060727fa841bee60ca2 --- /dev/null +++ b/README.en.md @@ -0,0 +1,68 @@ +# GB28181 Android Implementation + +## Project Introduction +This is an Android implementation based on the GB28181 standard, primarily used for video capture, encoding, and streaming media transmission. The project uses a combination of C++ and Java programming, including SIP protocol stack implementation and audio/video encoding functionality. + +## Main Features +- Supports GB28181 protocol registration and deregistration +- Supports audio and video capture and encoding +- Supports RTSP streaming media transmission +- Provides complete Android camera preview and recording functionality +- Includes SIP protocol stack implementation (eXosip2/osip2) + +## Technical Architecture +The project adopts a layered architecture design: +- Java Layer: Responsible for Android UI and system API calls +- JNI Layer: Bridges Java and C++ code +- C++ Layer: Implements the core protocol stack and audio/video encoding + +## Core Components +- `StreamRegister`: SIP stream registration management +- `MediaEncoder`: Media encoder base class +- `AudioEncoder`: Audio encoding implementation +- `VideoEncoder`: Video encoding implementation +- `CasicMediaKit`: Media processing toolkit +- `eXosip2/osip2`: SIP protocol stack implementation + +## Dependencies +- FFmpeg-related libraries (avcodec, avformat, avutil, etc.) +- eXosip2/osip2 SIP protocol stack +- Android MediaCodec API + +## Directory Structure +``` +app/ +├── src/main/ +│ ├── cpp/ # C++ source code +│ │ ├── audio_encoder.cpp # Audio encoding implementation +│ │ ├── video_encoder.cpp # Video encoding implementation +│ │ ├── media_encoder.cpp # Media encoder base class +│ │ └── ... # Other C++ components +│ │ +│ ├── java/ # Java source code +│ │ └── com/pengxh/app/gb28181/ # Java package +│ │ ├── base/ # Base Activity class +│ │ ├── ui/ # UI-related classes +│ │ └── util/ # Utility classes +│ │ +│ ├── jniLibs/ # Precompiled native libraries +│ │ └── armeabi-v7a/ # ARM architecture so libraries +│ │ ├── libavcodec.so +│ │ ├── libeXosip2.so +│ │ └── ... # Other native libraries +│ │ +│ ├── res/ # Resource files +│ └── AndroidManifest.xml # Android manifest file +``` + +## Usage Instructions +1. Clone the project +2. Set up the Android development environment +3. Connect a device or start an emulator +4. Build and run the project using Android Studio + +## Developer +Peng Xiaohao + +## License +This project uses the Apache-2.0 License \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9a5b2d4fd5523f7ca4e371d0588516342664a264 --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +该项目缺少README.md文件。我可以根据项目结构和代码内容为您创建一个。 + +```markdown +# GB28181 Android 实现 + +## 项目简介 +这是一个基于GB28181标准的Android端实现,主要用于视频采集、编码和流媒体传输。项目使用了C++和Java混合编程,包含了SIP协议栈实现和音视频编码功能。 + +## 主要功能 +- 支持GB28181协议的注册、注销 +- 支持音视频采集和编码 +- 支持RTSP流媒体传输 +- 提供了完整的Android相机预览和录制功能 +- 包含SIP协议栈实现(eXosip2/osip2) + +## 技术架构 +项目采用分层架构设计: +- Java层:负责Android UI和系统API调用 +- JNI层:连接Java和C++代码 +- C++层:实现核心协议栈和音视频编码 + +## 核心组件 +- `StreamRegister`:SIP流注册管理 +- `MediaEncoder`:媒体编码器基类 +- `AudioEncoder`:音频编码实现 +- `VideoEncoder`:视频编码实现 +- `CasicMediaKit`:媒体处理工具包 +- `eXosip2/osip2`:SIP协议栈实现 + +## 依赖库 +- FFmpeg相关库(avcodec, avformat, avutil等) +- eXosip2/osip2 SIP协议栈 +- Android MediaCodec API + +## 目录结构 +``` +app/ +├── src/main/ +│ ├── cpp/ # C++源代码 +│ │ ├── audio_encoder.cpp # 音频编码实现 +│ │ ├── video_encoder.cpp # 视频编码实现 +│ │ ├── media_encoder.cpp # 媒体编码基类 +│ │ └── ... # 其他C++组件 +│ │ +│ ├── java/ # Java源代码 +│ │ └── com/pengxh/app/gb28181/ # Java包 +│ │ ├── base/ # 基础Activity类 +│ │ ├── ui/ # UI相关类 +│ │ └── util/ # 工具类 +│ │ +│ ├── jniLibs/ # 预编译的native库 +│ │ └── armeabi-v7a/ # ARM架构的so库 +│ │ ├── libavcodec.so +│ │ ├── libeXosip2.so +│ │ └── ... # 其他native库 +│ │ +│ ├── res/ # 资源文件 +│ └── AndroidManifest.xml # Android清单文件 +``` + +## 使用说明 +1. 克隆项目 +2. 配置Android开发环境 +3. 连接设备或启动模拟器 +4. 使用Android Studio构建并运行项目 + +## 开发者 +彭晓豪 + +## 许可证 +本项目采用Apache-2.0 License +``` \ No newline at end of file