当前位置:网站首页>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;
}
边栏推荐
- bash: ln: command not found
- Internal control of fund managers
- A new round of popularity of digital collections opens
- flutter path_ Provider: ^2.0.10 can get temporary directory
- 想请教一下,我在广州,到哪里开户比较好?现在网上开户安全么?
- MIT's latest paper, "the need for interpretable features: motivation and classification": building interpretability in the constituent elements of machine learning models
- Wireshark TS | confusion between fast retransmission and out of sequence
- 【MPC】②quadprog求解正定、半正定、负定二次规划
- 获取键代码
- Rising Stars in Plant Sciences (RSPS2022) Finalist科学演讲会(6.30晚9点)
猜你喜欢

New situation of digital collection market

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

我国蜂窝物联网用户已达 15.9 亿,年内有望超越移动电话用户

Recommend a JSON visualization tool artifact!

CRC check

基于Matlab的开环Buck降压斩波电路Simulink仿真电路模型搭建

JS foundation -- data type

《百年巨匠》数字藏品中奖名单公布
![[encounter Django] - (II) database configuration](/img/23/aed472757f7e238a146b043c0405d7.png)
[encounter Django] - (II) database configuration

What are the advantages and disadvantages of PHP
随机推荐
Huawei HMS core joins hands with hypergraph to inject new momentum into 3D GIS
The exclusive collection of China lunar exploration project is limited to sale!
内存泄漏定位工具之 valgrind 使用
SQLAchemy 常用操作
LeetCode 438. Find all letter ectopic words in the string__ sliding window
Google's new paper Minerva: solving quantitative reasoning problems with language models
106. construct binary tree from middle order and post order traversal sequence
想开个户,在网上开华泰证券的户安全吗?
Uncover the secrets of new products! Yadi Guanneng 3 multi product matrix to meet the travel needs of global users
选择在中金证券上炒股开户可以吗?安全吗?
Dotnet console uses microsoft Maui. Getting started with graphics and skia
Can MySQL CDC take out the op field
SQL Server列一相同的情况下,如何取列二的最大值,并重新生成表
678. 有效的括号字符串
Huawei HMS core joins hands with hypergraph to inject new momentum into 3D GIS
华为设备配置大型网络WLAN基本业务
Website source code whole site download website template source code download
Database experiment report (I)
移动硬盘驱动器读到,但不显示盘符
CRC 校驗