当前位置:网站首页>Packet mode and three streaming modes in SDP protocol
Packet mode and three streaming modes in SDP protocol
2022-07-01 10:56:00 【qianbo_ insist】
1、rtsp Medium sdp agreement
sdp The name is Session Description Protocol , Include sip This is also used in the agreement
rtsp The protocol can transmit ps flow ,ts flow , Bare flow is also called es flow ,es The flow is more conventional , be familiar with h264 Of rtp The way the packet is packaged , perhaps h265 The way the packet is packaged ,h265 Packet RTP You can refer to ffmpeg Source code
rtsp Agreement If the transmission is h264 h265
“m=” The media name in the line is “video”
“a=rtpmap” The code name in the line is H264 h265
“a=rtpmap” The clock frequency in the row is generally 90000, It can be other numbers , however 90000 This number is suitable for many frame rates , So use it .
Other parameters are included in “a=fmtp” .
2、pm The way
packetization-mode:
Indicates the supported packet mode .
1 、packetization-mode The value is 0 Or when it doesn't exist , A single... Must be used NALU Unit mode .
2、 packetization-mode The value is 1 Use non interlaced (non-interleaved) Packet mode .
3、 packetization-mode The value is 2 Use interleaving (interleaved) Packet mode .
profile-level-id:
This parameter is used to indicate H.264 The flow of profile Type and level . from Base16( Hexadecimal ) It means 3 Bytes . The first byte indicates H.264 Of Profile type , The third byte represents H.264 Of Profile Level
We usually use packetization-mode = 1, Non staggered mode
3、ps 、ts、es transmission mode
The following code is used to recover rtsp The scenario transmits three different streams
int handle_cmd(string& cmd, string& CSeq, uint32_t sessionid, char* cmdres,int ps_n_ts)
{
#define BUFSIZE 8*1024
int h26xtype = 96;
if (cmd.compare("DESCRIBE") == 0)
{
const char * psnts;
if (ps_n_ts == 1)
{
psnts = "a=rtpmap:32 MP2P/90000";
h26xtype = 32;
}
else if (ps_n_ts == 2)
{
psnts = "a=rtpmap:96 H264/90000";
h26xtype = 96;
}
else if (ps_n_ts == 3)
{
psnts = "a=rtpmap:33 MP2T/90000";
h26xtype = 33;
}
char sdp[4096];
sprintf(sdp, "v=0\r\n"
"o=shyjx 22345 22345 IN IP4 %s\r\n"
"s=H.264 Video, streamed by qb\r\n"
"t=0 0\r\n"
//"m=video 0 RTP/AVP 96\r\n"
"%s\r\n"
"c=IN IP4 0.0.0.0\r\n"
"a=rtpmap:96 H264/90000\r\n"
"a=fmtp:96 packetization-mode=1;\r\n"
"a=control:stream", m_strlocalip.c_str(), psnts, h26xtype);
return buildDescribeRes(cmdres, BUFSIZE, sdp, CSeq.c_str());
}
else if (cmd.compare("OPTIONS") == 0)
{
return buildOptionRes(cmdres, BUFSIZE, CSeq.c_str());
}
else if (cmd.compare("SETUP") == 0)
{
return buildSetupTcpRes(cmdres, BUFSIZE, 0, 1, sessionid, CSeq.c_str());
}
else if (cmd.compare("PLAY") == 0)
{
return buildPlayRes(cmdres, BUFSIZE, NULL, sessionid, CSeq.c_str());
}
else if (cmd.compare("TEARDOWN") == 0)
{
return buildTeardownRes(cmdres, BUFSIZE, sessionid, CSeq.c_str());
}
return -1;
}
边栏推荐
- 银行卡借给别人是否构成犯罪
- prism journal导航按钮的可用性探索记录
- 内存泄漏定位工具之 valgrind 使用
- 全局过滤器(处理时间格式)
- Ten years of sharpening a sword: unveiling the secrets of ant group's observability platform antmonitor
- Venv: directory structure of venv
- 毕业季·进击的技术er
- YoDA统一数据应用——融合计算在蚂蚁风险场景下的探索与实践
- 基于Matlab的开环Buck降压斩波电路Simulink仿真电路模型搭建
- Crawler (2) - requests (1) | deep parsing of requests module
猜你喜欢

CCNP Part XII BGP (IV)

【Matytype】在CSDN博客中插入Mathtype行间与行内公式

Design and practice of new generation cloud native database

Mall applet source code open source version - two open

The first anniversary of the data security law, which four major changes are coming?

《百年巨匠》数字藏品中奖名单公布

How to solve the problem of SQL?

中国探月工程独家藏品限量发售!

2022年已经过去一半了,是不是很突然呢?

LeetCode. 515. Find the maximum value in each tree row___ BFS + DFS + BFS by layer
随机推荐
毕业季·进击的技术er
The Lantern Festival is held on the fifteenth day of the first month, and the Lantern Festival begins to celebrate the reunion
Suggest collecting | what to do when encountering slow SQL on opengauss?
新一代云原生数据库的设计与实践
NeurIPS 2022 | 细胞图像分割竞赛正式启动!
《百年巨匠》数字藏品中奖名单公布
选择在中金证券上炒股开户可以吗?安全吗?
银行卡借给别人是否构成犯罪
What are the advantages and disadvantages of PHP
Mutual conversion of pictures in fluent uint8list format and pictures in file format
12 product management platforms that everyone is using
Handling distributed transactions with powerful dbpack (PHP tutorial)
CRC verification
The first anniversary of the data security law, which four major changes are coming?
基金管理人的内部控制
Oracle和JSON的結合
Mobile hard drive reads but does not display drive letter
爬虫(2) - Requests(1) | Requests模块的深度解析
内存泄漏定位工具之 valgrind 使用
华为HMS Core携手超图为三维GIS注入新动能