- 博客(14)
- 收藏
- 关注
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-DeviceInfoManager
/ 设备总数 - 关键业务逻辑:只统计通道,不包含设备自身。// 注册方式:1-口令注册,2-IP注册,3-不认证注册。// 行政区域:GB/T 2260-2007行政区划代码。// 序列号 - 请求消息的流水号,用于请求-响应匹配。// 通道ID:20位国标编码,通常为设备ID+通道号。// 父子女关系:0-无子设备,1-有子设备。// 父设备ID:对于通道,指向所属设备ID。// 保密等级:0-公开,1-敏感,2-机密。// 设备状态:ON-在线,OFF-离线。// 设备ID - 20位国标编码。
2025-11-27 09:34:44
756
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-NetworkUtils
(ipAddress >> 8 & 0xff), // 次低位字节。(ipAddress & 0xff), // 最低位字节。(ipAddress >> 16 & 0xff), // 次高位字节。// 其他类型:蓝牙、VPN等。// 返回第一个符合条件的IP。// 特殊IP地址过滤。// 获取WifiManager系统服务。// 双重检查:网络存在且已连接。// 获取该接口的所有IP地址。// 设置连接超时:3000毫秒。// 获取所有网络接口的枚举。
2025-11-27 09:28:50
727
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-HeartbeatService
/ 主线程Handler。// 主线程Handler。// SIP协议管理器。// 重置计数,避免重复触发。
2025-11-26 09:20:35
792
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-ZLMHookClient
"/index/api/", // 标准API目录。"/api/" // 简化API目录。"/index/api/getServerConfig", // 标准端点。"/api/getServerConfig", // 简化端点。// - localIp/localPort: 本地RTP源地址。
2025-11-26 09:16:21
801
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-SipManager
/ 线程命名,便于调试。// 0表示系统分配。// 10秒接收超时。// 阻塞接收,10秒超时。// 源描述:用户名 会话ID 版本 网络类型 地址类型 地址。// 异步处理消息,避免阻塞接收线程。// 媒体描述:视频 端口 RTP/AVP 载荷类型。// 2. 绑定Socket端口(关键步骤)// 策略1:尝试5062-5080端口范围。// 超时是正常的,继续等待。// 连接信息:网络类型 地址类型 连接地址。// 1. 设置消息工厂上下文。// 3. 解析服务器地址。// 4. 启动接收线程。
2025-11-25 09:18:40
1136
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-SipMessageFactory
"<SN>" + System.currentTimeMillis() + "</SN>\n" + // 序列号:时间戳。"<DeviceID>" + deviceId + "</DeviceID>\n" + // 设备标识。"<Status>OK</Status>\n" + // 设备状态。
2025-11-25 09:14:00
1326
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-SdpParser
/ 传输方向(sendonly/recvonly/sendrecv)case 'v': parseVersion(value, sdpInfo);// 编解码器(H264/H265/PCMA等)if (line.startsWith("y=")) { // GB28181特有字段。// 时钟频率(90000视频/8000音频)} else if (line.startsWith("a=ssrc:")) { // 标准SSRC字段。// RTP负载类型(96,97,98等)
2025-11-24 09:57:40
596
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-SipMessageHandler
case "DeviceInfo": // 设备信息查询。case "Catalog": // 设备目录查询。case "DeviceStatus": // 设备状态查询。case "RecordInfo": // 录像信息查询。case "DeviceControl": // 设备控制。case "Alarm": // 报警查询。// 使用CRC32生成唯一SSRC。// 3. 验证和生成SSRC。// 基于流ID生成SSRC。
2025-11-24 09:41:50
805
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-StreamManager
/ 目标15fps。// 15fps = 1000/15 ≈ 66ms/帧。if (encodingDelay > 100) { // 编码延迟>100ms警告。// 🔥关键:使用WVP指定端口(如44492)// SPS/PPS参数发送。// RTP时间戳清零。// H.264编码器。
2025-11-21 15:06:29
680
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-GB28181PSPackager
一、概述: 这是一个完整的GB28181标准PS流封装器实现,用于将H.264视频数据封装成符合GB/T 28181-2016标准的PS流格式。二、代码解析:1)、主入口方法:public List<byte[]> packageH264Frame(byte[] frameData, long rtpTimestamp, boolean isKeyFrame) { List<byte[]> psPackets = new ArrayList<>(); try {
2025-11-21 09:30:44
987
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-GB28181Service
/ 设置CameraManager到StreamManager。// 每10秒检查一次。// 🔥从SIP消息中提取通道ID。// 开始视频流 - 传递通道ID。// 优先级2: 从SIP消息处理器获取。// 服务器恢复在线,重新注册。// 优先级1: 内部保存的通道ID。// 初始化SIP管理器。// 启动服务器状态检测。// 打印设备配置信息。// 创建SIP管理器。// 优先级3: 使用默认通道。// 测试基本网络连接。// 测试服务器可达性。
2025-11-20 09:22:07
1130
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-RtpSender
if (sequenceNumber.get() % 100 == 0) { // 每100个包记录一次。这是一个用于GB28181视频流传输的RTP发送器实现。// 90000 Hz时钟,25fps时每帧递增3600。// 记录PS包信息。// SSRC (32位)// 限制时间戳在32位范围内。// 发送每个PS包。
2025-11-19 10:03:16
673
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-H264Encoder
这是一个完整的Android H.264视频编码器实现。// 检查是否是配置数据。// 获取新的输出格式。// 配置MediaFormat。// 使用特定编码器。// 使用默认编码器。// 获取输入缓冲区。// 简化的SPS生成。// MediaCodec 相关。:分辨率、帧率、码率、关键帧间隔。:配置并启动MediaCodec。2)、 编码器启动流程 (:设置视频格式和编码参数。6)、编码数据发送 (3)、帧编码流程 (
2025-11-19 09:26:10
767
原创 基于Android studio的GB28181客户端代码(JAVA语言)解析-CamerManager
/ 用于显示相机预览的视图 private Camera camera;// 相机对象 private int cameraId = Camera.CameraInfo.CAMERA_FACING_BACK;// 默认后置摄像头 private boolean isPreviewing = false;// 设置SurfaceTexture监听器。// 打开指定摄像头。
2025-11-18 21:42:11
1114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅