webrtc vp8与h264 sdp文件解读
参考地址:https://blog.csdn.net/zhangjikuan/article/details/27367437, https://www.cnblogs.com/idignew/p/7249056.html
vp8 sdp描述文件
v=
o=- IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=
m=audio RTP/AVP
a=rtcp-mux
a=rtpmap: opus//
a=fmtp: minptime=;useinbandfec=
m=video RTP/AVP
a=rtcp-mux
a=rtpmap: VP8/
1、v=0 sdp的版本号
2、o=<username> <sessionid> <version> <network type> <address type> <address> / o=<用户名> <session id> <会话版本> <网络类型><地址类型> <地址>,6部分组成,对会话的发起者进行了描述
<username>是用户的登录名。如果主机不支持<username>,则为 ”-”;
<session id>:是一个数字串。在整个会话中,必须是唯一的,建议使用NTP(Network Time Protocol)timestamp,这里是0;
<version>:该会话公告的版本,供公告代理服务器检测同一会话的若干个公告哪个是最新公告.基本要求是会话数据修改后该版本值递增,建议用NTP时戳,这里是0;
<networktype>:网络类型,一般为”IN”,表示”internet”;
<address type>:地址类型,一般为IP4;
<address>:地址,由于在本机上传输,这里是 127.0.0.1;
3、s=<sessionname>,会话名,在整个会话中有且只有一个”s=”,就像username一样,这里是 “ - ”;
4、c=<networktype> <address type> <connection address>,表示媒体连接信息, 一个会话声明中,会话级描述中必须有”c=”项或者在每个媒体级描述中有一个”c=”项。可能在会话级描述和每个媒体级描述中都有”c=”项
<network type>:网络类型,一般为”IN”,表示”internet”;
<address type>:地址类型,一般为IP4;
<connection address>:应用程序必须处理域名和ip地址两种情形。单播时,为域名或ip地址,推荐使用域名;多播,为ip地址,且ip后面必须有TTL(取值范围是0-255),地址和TTL决定了多播包被传播的范围。例 c=IN IP4 224.2.1.1/127,这里单播使用域名
5、 t=<start time> <stop time>,描述了会话的开始时间和结束时间
<start time> 和<stop time> 为NTP时间,单位是秒。假如<stop time>为零表示过了<start time>时间后会话一直持续。当<start time> 和<stoptime>均为零时表示持久会话,建议start time和stoptime不要设为0。因为不知道此会话的开始和结束时间,增加了调度(scheduling)的难度
这里开始时间和结束时间都为0
6、m=<media><port> <transport> <fmt list>, 一个会话描述包括几个媒体描述。一个媒体描述以”m=”开始到下一个”m=”结束
<media>:表示媒体类型。有"audio", "video","application"(例白板信息), "data"(不向用户显示的数据) 和"control"(描述额外的控制通道)。这里有2个m,分别描述音频和视频
<port>:媒体流发往传输层的端口。取决于c=行规定的网络类型和接下来的传送层协议:对UDP为1024-65535;对于RTP为偶数
当分层编码流被发送到一个单播地址时,需要列出多个端口。方式如下:
m=<media><port>/<number of ports> <transport> <fmt list>
对于RTP,偶数端口被用来传输数据,奇数端口用来传输RTCP包。
例:m=video 49170/2 RTP/AVP 31
端口49170和49171为第一对RTP/RTCP端口,49172和49173为第二对的端口。传输协议是RTP/AVP,媒体格式为31(媒体格式是rtp头中payload参数对应的)
这里端口号5006,媒体格式111
7、a=rtcp-mux,表示rtp和rtcp复用一个端口
8、a=rtpmap:<payload type><encoding name>/<clock rate>[/<encodingparameters>]
a=rtpmap:<负载类型><编码名>/<时钟速率>[/<编码参数>],负载类型就是m行描述的媒体类型,编码名opus/vp8,时钟速率48000,90000
9、a=fmtp:<format> <format specific parameters>,a=fmtp 用于DTMF数字信号、电话音和电话信号的RTP负载格式;
a=fmtp:<格式>< 格式特定参数>//定义指定格式的附加参数,这行不知道什么意思,应该是音频相关信息
h264 sdp描述文件
v=
o=- IN IP4 127.0.0.1
s=-
c=IN IP4 127.0.0.1
t=
m=audio RTP/AVP
a=rtcp-mux
a=rtpmap: opus//
a=fmtp: minptime=;useinbandfec=
m=video RTP/AVP
a=rtcp-mux
a=rtpmap: H264/
a=fmtp: level-asymmetry-allowed=;packetization-mode=;profile-level-id=42e01f
基本一致,多了一行视频描述信息
webrtc vp8与h264 sdp文件解读的更多相关文章
- trace文件解读
*********************************************************************示例:全表扫描的10046文件解读************** ...
- Qt基于FFmpeg播放本地 H.264(H264)文件(灿哥哥的博客)
最近在弄H264的硬件编解码,基于DM3730,但是为了调试方便,在小红帽上用FFmpeg实现了H264的软件编解码.现在弄了一个Windows的例子,给需要的同学参考一下,如果大家觉得有帮助,可以小 ...
- Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...
- Linux系统下的 /etc/fstab 文件解读
1 [root@localhost ~]# cat /etc/fstab 2 3 # 4 # /etc/fstab 5 # Created by anaconda on Sat Nov 3 12:03 ...
- /proc/cpuinfo文件解读(超易理解)
在linux系统中,提供了/proc目录下文件,显示系统的软硬件信息.如果想了解系统中CPU的提供商和相关配置信息,则可以查/proc/cpuinfo.但是此文件输出项较多,不易理解.例如我们想获取, ...
- maven工程pom.xml文件解读
maven的核心是pom.xml,POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述如何构建,声明项目依赖.以Hello World项目为例,创建一个hel ...
- EPANET头文件解读系列9——VARS.H
/************************************************************************* Global Variabl ...
- Visual Studio 2010 C++ 工程文件解读
在 VS2010 中,C++ 的工程文件已经和 2005 / 2008 有了很大的不同,而是完全采用 MSBUILD 的属性方式进行表达,并且可以让用户通过一次性的配置而对所有的属性进行自定义: 根据 ...
- 【QT相关】类头文件解读、QT编辑模式、读取text文本
Wizard产生的头文件类包含了必须的#include文件.构造函数.析构函数和UI对象: #include <QMainWindow> namespace Ui {class Notep ...
随机推荐
- CF594D REQ [离线+树状数组,欧拉函数]
设 \[x = \prod_{i=1}^{cnt} p_i^{k_i} [p_i\in prime]\] 那么显然 \[\varphi(x) = x*\frac{1} {\prod_{i=1}^{cn ...
- Scout YYF I POJ - 3744【矩阵乘法优化求概率】
题意: 一条路上有 $n$ 个地雷,YYF 从位置 $1$ 出发,走一步的概率为 $p$,走两步的概率是 $(1-p)$.求 YYF 能顺利通过这条路的概率. 数据范围: $1\leq n \leq ...
- 【新人赛】阿里云恶意程序检测 -- 实践记录10.27 - TF-IDF模型调参 / 数据可视化
TF-IDF模型调参 1. 调TfidfVectorizer的参数 ngram_range, min_df, max_df: 上一篇博客调了ngram_range这个参数,得出了ngram_range ...
- python之三目运算符的替代品?
# 不知曾几何时,你是否也觉得Python的三目运算写起来很麻烦呢?(没有过) # 比如: a, b = 3, 4 c = a if a > b else b d = a if a < b ...
- python之路(列表,元组)
列表 list:基础数据类型之一,可以索引,切片,步长,切片+步长可以增删改查,可迭代,可嵌套字典,元组,列表 一.索引,切片,步长 list01 = [1,2,3,'eric','west'] 1. ...
- 题解 AT4164 【[ABC102A] Multiple of 2 and N】
首先我们先来回忆一下小学一年级就学过的知识:任何一个偶数都是 \(2\) 的倍数,那么我们就可以分成两种情况考虑:奇数和偶数. 对于偶数,我们可以直接将其输出,因为它必定能被 \(2\) 与它自己整除 ...
- 在mac下初次使用pygame踩坑纪实(卡死)
初次使用pygame实现绘图功能就踩坑 直接上代码 import pygame pygame.init() # 创建游戏的窗口 480 * 700screen = pygame.display.set ...
- Java定时任务之Timer
Timer是Java中实现定时任务的方式之一,下面是一个简单的例子: import java.util.Timer; import java.util.TimerTask; public class ...
- BZOJ 2467: [中山市选2010]生成树
有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角形圈的中心的圈上有公共的 ...
- 风变编程笔记(一)-Python基础语法
第0关 print()函数与变量 1. print()函数print()函数:告诉计算机,把括号的内容显示在屏幕上 # 不带引号 print(1+1) # 让计算机读懂括号里的内容,打印最终的结果 ...