android实现rtsp服务器的一些参考资料

本文介绍了如何在Android上实现RTSP服务器,主要参考了libstreaming库。涉及到的关键技术包括RTSP协议、RTP协议、H264编码。文章详细解析了libstreaming的目录结构,特别是视频流和音频流的处理,并提到了libstreaming的坑,如分辨率限制、画面旋转问题以及客户端起播慢的解决方案。此外,还讨论了YUV格式转换和编码器设置,以及提供了其他参考资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 https://github.com/fyhertz/libstreaming
支持rtsp、rtp协议,H264编码,主要是基于这个库进行开发
需要先了解RTSP协议、RTP协议和怎么通过RTP协议来传输H264的每一帧
RTSP协议介绍
RTP协议介绍
h264基础及rtp分包解包

libstreaming的目录
net
└── majorkernelpanic
└── streaming
├── audio 音频相关
│ ├── AACStream.java
│ ├── AMRNBStream.java
│ ├── AudioQuality.java
│ └── AudioStream.java
├── exceptions
│ ├── CameraInUseException.java
│ ├── ConfNotSupportedException.java
│ ├── InvalidSurfaceException.java
│ └── StorageUnavailableException.java
├── gl openGL相关的,当前没用到
│ ├── SurfaceManager.java
│ ├── SurfaceView.java
│ └── TextureManager.java
├── hw 用于获取编码器等信息
│ ├── CodecManager.java
│ ├── EncoderDebugger.java 获取sps和pps,NV21Convertor的初始化
│ └── NV21Convertor.java 将NV21数据转换成yuv420p
├── MediaStream.java 媒体流,视频流和音频流的父类
├── mp4 没用到
│ ├── MP4Config.java
│ └── MP4Parser.java
├── rtcp RTCP相关
│ └── SenderReport.java
├── rtp
│ ├── AACADTSPacketizer.java
│ ├── AACLATMPacketizer.java
│ ├── AbstractPacketizer.java
│ ├── AMRNBPacketizer.java
│ ├── H263Packetizer.java
│ ├── H264Packetizer.java H264数据打包
│ ├── MediaCodecInputStream.java 将h264编码器的输出包装成一个流
│ └── RtpSocket.java 发送打包好的H264数据
├── rtsp
│ ├── RtcpDeinterleaver.java
│ ├── RtspClient.java
│ ├── RtspServer.java RTSP服务器的实现
│ └── UriParser.java 解析RTSP的url工具
├── SessionBuilder.java 用于配置视频音频编码格式、分辨率等等
├── Session.java
├── Stream.java
└── video
├── CodecManager.java
├── H263Stream.java
├── H264Stream.java H264视频流,将摄像头采集的数据编码成H264码流
├── VideoQuality.java
└── VideoStream.java H264Stream的父类

2 https://github.com/fyhertz/spydroid-ipcamera
3 https://github.com/hypeapps/Endoscope
以上两个是基于libstreaming的应用,可以用来参考

4 https://github.com/EasyDSS/EasyIPCamera
EasyIPCamera是一个需要商业授权的应用,开源的代码包含了摄像头数据H264软硬编码部分,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值