当前位置:网站首页>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;
}
边栏推荐
- Project0:小游戏
- 关于#SQL#的问题,如何解决?
- MIT最新论文《对可解释特征的需求:动机和分类》:在机器学习模型的组成元素中建立可解释性
- How to get the maximum value of column two and regenerate the table when the SQL Server column one is the same
- 使用强大的DBPack处理分布式事务(PHP使用教程)
- 12 plateformes de gestion de produits utilisées par tout le monde
- SQL optimization - in and not in, exist
- LeetCode. One question of the day: offer II 091 Paint the house (DP problem)
- Wireshark TS | 快速重传和乱序之混淆
- [MPC] ① quadratic programming problem matlab solver quadprog
猜你喜欢

What are the advantages and disadvantages of PHP

新品大揭秘!雅迪冠能 3 多元产品矩阵,满足全球用户出行需求

Oracle和JSON的結合

LeetCode. 515. Find the maximum value in each tree row___ BFS + DFS + BFS by layer

MIT最新论文《对可解释特征的需求:动机和分类》:在机器学习模型的组成元素中建立可解释性

JS基础--数据类型

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

《数据安全法》出台一周年,看哪四大变化来袭?

云上“视界” 创新无限 | 2022阿里云直播峰会正式上线

投稿开奖丨轻量应用服务器征文活动(5月)奖励公布
随机推荐
NC | intestinal cells and lactic acid bacteria work together to prevent Candida infection
applyMiddleware 原理
Ten years of sharpening a sword: unveiling the secrets of ant group's observability platform antmonitor
Wireshark TS | confusion between fast retransmission and out of sequence
Website source code whole site download website template source code download
[MPC] ① quadratic programming problem matlab solver quadprog
What are the advantages and disadvantages of PHP
New situation of digital collection market
谷歌新论文-Minerva:用语言模型解决定量推理问题
Suggest collecting | what to do when encountering slow SQL on opengauss?
PHP有哪些优势和劣势
Can MySQL CDC take out the op field
flutter path_provider: ^2.0.10可以获取临时目录
【MPC】②quadprog求解正定、半正定、负定二次规划
Development overview of fund internationalization
技术分享 | Linkis参数介绍
Rising Stars in Plant Sciences (RSPS2022) Finalist科学演讲会(6.30晚9点)
2022年已经过去一半了,是不是很突然呢?
数字藏品新一轮热度开启
I'd like to know where I can open an account in Guangzhou? Is it safe to open an account online now?