mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2025-12-18 01:16:49 +08:00
Page:
RTSP推流流程
Pages
Benchmark
Dependency and Copyright
GB28181 SIP信令抓包
GB28181怎么用设备ID作为流ID
GB28181推流
HTTP文件服务器优化:获取文件大小
Home
How to create a live steam
MediaServer支持的HTTP API
MediaServer支持的HTTP HOOK API
Playing URL Rules
Quick Start
RTMP对H265和OPUS的支持
RTMP播放兼容性问题
RTSP性能优化
RTSP推流流程
Starting and Stopping the Server
VideoStack多视频流拼接宫格功能
Windows 版编译说明
ZLMediaKit实现按需拉流
ZLMediaKit实现推流鉴权
ZLMediaKit实现播放鉴权
ZLMediaKit推流测试
ZLMediaKit高并发实现原理
ZLMediakit独家特性介绍
postman 自动生成的restful api接口
rtmp拉流性能测试
rtmp推流性能测试
rtsp拉流性能测试
rtsp推流性能测试
vcpkg方式安装zlmediakit
webrtc信令交互格式
zlmediakit webrtc重磅更新
zlmediakit对vp8 vp9 av1编码的全面支持
zlmediakit的hls高性能之旅
zlm启用webrtc编译指南
为什么不建议QQ私聊咨询问题?
代码依赖与版权声明
代码篇之onceToken
使用ZLMediaKit实现按需推流
在线测试
延时测试
快速开始
怎么开启https相关功能
怎么测试ZLMediaKit的延时?
性能测试
播放url规则
时序图
服务器的启动与关闭
流媒体相关技术介绍
生成SSL自签名证书并测试
直播延时的本质
视频会议相关资源
配置文件详解
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
1、客户端发送ANNOUNCE命令
此步骤主要传输SDP,一般而言在这个命令之前还需要OPTIONS命令侦探服务器是否支持推流协议,但是为了减少交互次数,可以直接发送ANNOUNCE命令,如果不支持,服务器自然响应错误代码。
ANNOUNCE rtsp://10.0.9.130:554/live/2.sdp RTSP/1.0
CSeq: 1
User-Agent: EasyPusher v1.2.16.1105
Content-Type: application/sdp
Content-Length: 541
v=0
o=- 0 0 IN IP4 127.0.0.1
s=EasyDarwin
i=EasyDarwin
c=IN IP4 127.0.0.1
t=0 0
a=x-qt-text-nam:EasyDarwin
a=x-qt-text-inf:EasyDarwin
a=x-qt-text-cmt:source application::EasyDarwin
a=x-qt-text-aut:
a=x-qt-text-cpy:
m=video 0 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=
a=control:streamid=0
m=audio 0 RTP/AVP 97
a=rtpmap:97 MPEG4-GENERIC/8000/1
a=fmtp:97 streamtype=5;profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1588
a=control:streamid=1
2、服务器响应ANNOUNCE命令
服务器如果解析SDP成功,那么会返回200代码表明成功
RTSP/1.0 200 OK
CSeq: 1
Date: Tue, Mar 26 2019 09:10:10 GMT
Server: ZLMediaKit-4.0(build in Mar 26 2019 17:01:17)
Session: KPUZ49ejotyD
3、客户端发送SETUP命令
此命令作用是协商rtp传输方式,可选tcp和udp方式,为了简便,建议使用tcp方式推流 需要指出的是,如果sdp中有多个track(例如音视频都有),那么SETUP命令交互会有多次
SETUP rtsp://10.0.9.130:554/live/2.sdp/streamid=0 RTSP/1.0
Transport: RTP/AVP/TCP;unicast;mode=record;interleaved=0-1
CSeq: 2
User-Agent: EasyPusher v1.2.16.1105
4、服务器响应SETUP命令
服务器返回协商好的interleaved,其他自便
RTSP/1.0 200 OK
CSeq: 2
Date: Tue, Mar 26 2019 09:10:10 GMT
Server: ZLMediaKit-4.0(build in Mar 26 2019 17:01:17)
Session: KPUZ49ejotyD
Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=00000000
x-Dynamic-Rate: 1
x-Transport-Options: late-tolerance=1.400000
5、客户端发送RECORD命令
相当于播放时的play命令,同步命令,让服务器准备好。 请注意,为了节省篇幅,该命令前省略了一次SETUP交互
RECORD rtsp://10.0.9.130:554/live/2.sdp RTSP/1.0
Range: npt=0.000-
CSeq: 4
User-Agent: EasyPusher v1.2.16.1105
Session: KPUZ49ejotyD
6、服务器响应RECORD命令,可以开始推流!
服务器响应RECORD命令后,推流客户端就可以源源不断发送RTP包了
RTSP/1.0 200 OK
CSeq: 4
Date: Tue, Mar 26 2019 09:10:10 GMT
RTP-Info: url=rtsp://10.0.9.130:554/live/2.sdp/streamid=0,url=rtsp://10.0.9.130:554/live/2.sdp/streamid=1
Server: ZLMediaKit-4.0(build in Mar 26 2019 17:01:17)
Session: KPUZ49ejotyD
测试文档
使用教程
- 代码依赖与版权声明
- 快速开始
- vcpkg安装zlmediakit
- 服务器的启动与关闭
- GB28181教程
- 推流播放测试
- RESTful 接口
- RESTful 接口 postman自动生成
- Web Hook 接口
- 配置文件详解
- 播放URL规则
- 按需拉流
- 按需推流
- 播放鉴权
- 推流鉴权
- 怎样创建直播流
- webrtc编译与使用
- webrtc信令交互格式
- webrtc重磅更新
- 怎么开启https相关功能
相关文档和资源
- zlmediakit独家特性
- zlmediakit的hls高性能之旅
- 高并发实现原理
- RTSP推流流程
- 流媒体相关技术介绍
- 直播延时的本质
- rtmp对H265/opus的支持
- ssl自签名证书测试
- 视频会议相关资源