当前位置:网站首页>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
- 想开个户,在网上开华泰证券的户安全吗?
- MIT's latest paper, "the need for interpretable features: motivation and classification": building interpretability in the constituent elements of machine learning models
- Detailed explanation of linear regression in machine learning
- JS基础--数据类型
- Project0: Games
- Rising stars in Plant Sciences (rsps2022) final Science Lecture (6.30 pm)
- 基金国际化的发展概况
- PHP有哪些优势和劣势
- LeetCode 438. 找到字符串中所有字母异位词__滑动窗口
猜你喜欢
Error: missing revert data in call exception
Design and practice of new generation cloud native database
Addition, deletion, modification and query of database
China's cellular Internet of things users have reached 1.59 billion, and are expected to surpass mobile phone users within this year
Error: missing revert data in call exception
个人商城二开逍遥B2C商城系统源码-可商用版/拼团拼购优惠折扣秒杀源码
华为设备配置大型网络WLAN基本业务
CVPR 2022 | Virtual Correspondence: Humans as a Cue for Extreme-View Geometry
新品大揭秘!雅迪冠能 3 多元产品矩阵,满足全球用户出行需求
JS foundation -- data type
随机推荐
Wireshark TS | confusion between fast retransmission and out of sequence
. Net 5.0+ does not need to rely on third-party native implementation of scheduled tasks
Crawler (2) - requests (1) | deep parsing of requests module
华为设备配置大型网络WLAN基本业务
转义字符串
Prism journal navigation button usability exploration record
基金国际化的发展概况
想开个户,在网上开华泰证券的户安全吗?
MIT最新论文《对可解释特征的需求:动机和分类》:在机器学习模型的组成元素中建立可解释性
CVPR 2022 | 基于密度与深度分解的自增强非成对图像去雾
2022年已经过去一半了,是不是很突然呢?
Valgrind usage of memory leak locating tool
SQLAchemy 常用操作
选择在中金证券上炒股开户可以吗?安全吗?
网站源码整站下载 网站模板源代码下载
获取键代码
Error: missing revert data in call exception
Database experiment report (II)
Guys, how to export iceberg data to MySQL? What tools are there? Neither sqoop nor dataX
基金管理人的内部控制