# RKMediaCodecDemo **Repository Path**: open-android/RKMediaCodecDemo ## Basic Information - **Project Name**: RKMediaCodecDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-08 - **Last Updated**: 2026-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Based on the code map provided, I can analyze the project structure and create a comprehensive README. This is an Android demo project for Rockchip's RTSP media streaming with hardware-accelerated decoding. # RKMediaCodecDemo RTSP 实时流媒体播放 Demo,基于 Rockchip MPP 硬件解码器 ## 项目简介 本项目是一个 Android 演示应用,展示了如何使用 Rockchip MPP (Media Process Platform) 硬件解码器实现 RTSP 实时流媒体的播放。支持同时播放 4 路 RTSP 视频流,并支持 H.264 视频和 AAC 音频的硬件解码。 ## 功能特性 - **多路 RTSP 流播放**:支持同时播放最多 4 路 RTSP 视频流 - **硬件加速解码**:基于 Rockchip MPP 实现 H.264 硬件解码 - **音频解码**:支持 AAC 音频硬件解码 - **RTSP/RTP 协议**:完整的 RTSP 协议实现,支持 TCP/UDP 传输 - **H.264 NAL 单元解析**:支持 FU-A 分片单元的重组 - **FPS 统计**:实时显示解码帧率 ## 模块结构 ``` app/ # 主应用模块 ├── MainActivity.java # 主界面,4路视频播放演示 ├── PlayerView.java # 自定义播放器视图 ├── RKMediaplayer.java # 媒体播放器核心类 ├── PortScanner.java # 网络端口扫描工具 └── rtsp/ # RTSP/RTP 协议实现 ├── RTSPConnector.java # RTSP 连接器 ├── RTPConnector.java # RTP 数据包接收 ├── RTPPackage.java # RTP 包解析 ├── H264Package.java # H.264 帧组装 ├── NALUnit.java # NAL 单元解析 ├── AACPackage.java # AAC 包处理 └── RTCPPackage.java # RTCP 包处理 rkmediacodec/ # 硬件解码器模块 ├── RKMediaCodec.java # MediaCodec 封装 ├── rk_mpp.h # MPP 头文件 └── native-lib.cpp # JNI 本地代码 ``` ## 技术栈 - **Android SDK**: API 21+ - **NDK**: ARM64-v8a - **核心库**: libmpp.so, libvpu.so (Rockchip MPP 媒体处理库) - **视频编解码**: H.264 (硬解) - **音频编解码**: AAC (硬解) - **流媒体协议**: RTSP/RTP/RTCP ## 快速开始 ### 环境要求 - Android Studio 3.0+ - NDK (ARM64-v8a) - Android SDK API 21+ - Rockchip 平台设备 (或模拟器) ### 编译步骤 1. 克隆项目到本地 2. 使用 Android Studio 打开项目 3. 同步 Gradle 依赖 4. 编译运行到设备 ### 配置 RTSP 流地址 在 `MainActivity.java` 中修改 RTSP 流地址: ```java private String RTSP_IP1 = "192.168.1.100"; private int RTSP_port = 554; private String RTSP_func = "/stream1"; ``` ## 使用方法 1. 安装应用到 Rockchip 设备 2. 点击界面上的 "Start" 按钮开始播放 3. 可同时观看 4 路 RTSP 视频流 4. 点击 "Stop" 停止播放 5. 支持暂停/继续操作 ## 核心类说明 ### RKMediaPlayer 媒体播放器核心类,负责: - RTSP 流连接 - RTP 数据接收 - H.264 视频解码 - AAC 音频解码 - 音视频同步 ### RTSPConnector RTSP 协议实现,负责: - RTSP 会话建立 (OPTIONS/DESCRIBE/SETUP/PLAY) - SDP 媒体描述解析 - Track 轨道选择 ### RKMediaCodec Android MediaCodec 的 Rockchip 扩展封装,调用本地 MPP 实现硬件解码。 ## 注意事项 1. 本 Demo 需要在 Rockchip 平台设备上运行才能发挥硬件解码性能 2. 确保设备已正确配置 Rockchip MPP 库 3. RTSP 流地址需要根据实际网络环境修改 4. 支持 TCP 和 UDP 两种传输模式 ## 许可证 本项目代码仅供学习和研究使用。 ## 相关资源 - [Rockchip MPP 官方文档](http://www.rock-chips.com) - [Android MediaCodec](https://developer.android.com/reference/android/media/MediaCodec)