【转】SDP file
SDP file
Introduction
The Session Description Protocol (SDP) is a format for describing the initialization parameters of streaming media sessions. SDP does not deliver media itself but is used for negotiation between end points of media type, format, and all associated properties.
To connect to a streaming server sending an MPEG2 transport stream, you don't usually have to use an SDP file since it's more convenient to use direct pseudo-URIs like:
rtp://{Streaming_Server_IP}:{Port}
udp://{Streaming_Server_IP}:{Port}
Nevertheless, when more control over the parameters of the stream are required, an SDP description file may be used instead. The SDP file can be located on the HMP or on a remote server. To include an SDP file inside your project, set the URI of a media layer to:
my_sdp_file.sdp (if the SDP file is located into the root of your project) or
http://my_server/my_sdp_file.sdp (if the SDP file is located on a remote server).
The following are supported:
SDP that refers to an MPEG2TS via RTP or UDP (all valid codecs for use in an MPEG-2 TS are supported: MPEG 1/2/4/H264);
SDP that refers to a raw bitstream of MPEG 1/2/4/H264.
See also the supported attributes section for ways to overwrite the HMP default behaviour.
SDP file syntax
A session is described by a series of <character>=<value> fields (one per line), where <character> is a single case-significant character and <value> is structured text whose format depends upon the first one. For more details about this subject, see Session description section on the Wikipedia site.
Sample:
v=
o=- IN IP4 <your.domain.name>
s=Anonymous
c=IN IP4 <streaming_server_ip>
t=
m=video <streaming_port> <streaming_format> <payload>
where:
<streaming_server_ip> is usually a multicast address (for instance 239.192.1.21).
<streaming_port> should be above 1024 (for instance 5000).
<streaming_format> is either UDP (or direct streaming over UDP) or RTP/AVP (for a transport stream inside RTP packets).<payload>有效负荷,负载数据类型,具体类型数值见附录1
Supported attributes
The following session attributes are supported by the HMP:
a=audioPid:<audio_pid>- Selection of the audio PID.
a=program:<program_number>- Selection of the program number
a=videoPid:<video_pid>- Selection of the video PID.
Notes:
- To find out the possible values for
<program_number>,<videoPid>and / or<audioPid>, first connect to the streaming server without specifying any attribute and then open the resources.log to retrieve the values returned by the streaming server. - The
audioPidandvideoPidattributes were introduced in firmware version 2.2.5 to replace the deprecatedexterityVideoPidandexterityAudioPidattributes (which are no longer supported).
附录1:payload数值定义
PT ![]() |
Encoding Name ![]() |
Audio/Video (A/V) ![]() |
Clock Rate (Hz) ![]() |
Channels ![]() |
Reference ![]() |
|---|---|---|---|---|---|
| 0 | PCMU | A | 8000 | 1 | [RFC3551] |
| 1 | Reserved | ||||
| 2 | Reserved | ||||
| 3 | GSM | A | 8000 | 1 | [RFC3551] |
| 4 | G723 | A | 8000 | 1 | [Vineet_Kumar][RFC3551] |
| 5 | DVI4 | A | 8000 | 1 | [RFC3551] |
| 6 | DVI4 | A | 16000 | 1 | [RFC3551] |
| 7 | LPC | A | 8000 | 1 | [RFC3551] |
| 8 | PCMA | A | 8000 | 1 | [RFC3551] |
| 9 | G722 | A | 8000 | 1 | [RFC3551] |
| 10 | L16 | A | 44100 | 2 | [RFC3551] |
| 11 | L16 | A | 44100 | 1 | [RFC3551] |
| 12 | QCELP | A | 8000 | 1 | [RFC3551] |
| 13 | CN | A | 8000 | 1 | [RFC3389] |
| 14 | MPA | A | 90000 | [RFC3551][RFC2250] | |
| 15 | G728 | A | 8000 | 1 | [RFC3551] |
| 16 | DVI4 | A | 11025 | 1 | [Joseph_Di_Pol] |
| 17 | DVI4 | A | 22050 | 1 | [Joseph_Di_Pol] |
| 18 | G729 | A | 8000 | 1 | [RFC3551] |
| 19 | Reserved | A | |||
| 20 | Unassigned | A | |||
| 21 | Unassigned | A | |||
| 22 | Unassigned | A | |||
| 23 | Unassigned | A | |||
| 24 | Unassigned | V | |||
| 25 | CelB | V | 90000 | [RFC2029] | |
| 26 | JPEG | V | 90000 | [RFC2435] | |
| 27 | Unassigned | V | |||
| 28 | nv | V | 90000 | [RFC3551] | |
| 29 | Unassigned | V | |||
| 30 | Unassigned | V | |||
| 31 | H261 | V | 90000 | [RFC4587] | |
| 32 | MPV | V | 90000 | [RFC2250] | |
| 33 | MP2T | AV | 90000 | [RFC2250] | |
| 34 | H263 | V | 90000 | [Chunrong_Zhu] | |
| 35-71 | Unassigned | ? | |||
| 72-76 | Reserved for RTCP conflict avoidance | [RFC3551] | |||
| 77-95 | Unassigned | ? | |||
| 96-127 | dynamic | ? | [RFC3551] |
摘自:
http://support.spinetix.com/wiki/SDP_file
http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml
【转】SDP file的更多相关文章
- RTSP Monitor的总结
项目描述: 一个本地的IP Camera 实时发送RTSP视频流到本机上,视频的帧是H264编码,需要解码并显示到屏幕上.并把每帧视频对应的时间戳转换成日期年月日时分秒打印到每帧的图像上显示. 使用 ...
- with ffmpeg to encode video for live streaming and for recording to files for on-demand playback
We've been doing some experimentation with ffmpeg to encode video for live streaming and for recordi ...
- Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配
分布式程序运算是一种水平扩展(scale-out)运算模式,其核心思想是能够充分利用服务器集群中每个服务器节点的计算资源,包括:CPU.内存.硬盘.IO总线等.首先对计算任务进行分割,然后把细分的任务 ...
- RFC-RTSP
Network Working Group H. Schulzrinne Request for Comments: 2326 Columbia U. Category: Standards Trac ...
- rtsp简介
https://wenku.baidu.com/view/b10415dabd64783e08122b9c.html 1 概要 RTSP(Real Time Streaming Protoc ...
- Akka-Cluster(3)- ClusterClient, 集群客户端
上篇我们介绍了distributed pub/sub消息传递机制.这是在同一个集群内的消息共享机制:发布者(publisher)和订阅者(subscriber)都在同一个集群的节点上,所有节点上的Di ...
- Akka-Cluster(2)- distributed pub/sub mechanism 分布式发布/订阅机制
上期我们介绍了cluster singleton,它的作用是保证在一个集群环境里永远会有唯一一个singleton实例存在.具体使用方式是在集群所有节点部署ClusterSingletonManage ...
- PICE(4):MongoDBStreaming - gRPC Protobuf conversion
前两篇我们介绍了JDBC和Cassandra的gRPC streaming实现.相对MongoDB来说,JDBC和Cassandra支持字符类型的query语句SQL,CQL,所以把query指令转换 ...
- PICE(3):CassandraStreaming - gRPC-CQL Service
在上一篇博文里我们介绍了通过gRPC实现JDBC数据库的streaming,这篇我们介绍关于cassandra的streaming实现方式.如果我们需要从一个未部署cassandra的节点或终端上读取 ...
随机推荐
- 使用tornado让你的请求异步非阻塞
http://www.dongwm.com/archives/shi-yong-tornadorang-ni-de-qing-qiu-yi-bu-fei-zu-sai/?utm_source=tuic ...
- Searching a 2D Sorted Matrix Part I
Write an efficient algorithm that searches for a value in an n x m table (two-dimensional array). Th ...
- POJ 3286 How many 0's?
题目链接 题意 :写下m到n之间所有的数,会写多少个0. 思路 :先算0到m的,再算0到n的,最后相减. 网上有位大神是这么推的,看下面.... 首先转化成求 [0, x] 中所有数中,含有的 0 的 ...
- Play Framework 发现并没有热启动的特殊情况
解决办法: 删掉 target目录下的两个文件夹: src_mananger 和 twirl -----或者删掉整个target文件夹. 因为play framework 运行的是 在target 文 ...
- js call apply bind简单的理解
相同点:JS中call与apply方法可以改变某个函数执行的上下文环境,也就是可以改变函数内this的指向.区别:call与apply方法的参数中,第一个参数都是指定的上下文环境或者指定的对象,而ca ...
- Java的登陆验证问题
java中的登陆验证问题可以有多种方式进行验证,通过拦截器功能完成,可以通过过滤器功能完成,也可以简单的代码在JSP页面中单独完成,其中都 涉及到一个关键的验证步骤,这个验证原理ASP,PHP,JAV ...
- VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)
原文地址: VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)-软件开发-鸡啄米 http://www.jizhuomi.com/software/139.html 上一讲中鸡 ...
- Dubbo分布式服务框架入门
参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架 ...
- oracle Instance status: READY–lsnrctl status|start|stop
监听器启动,并不一定会认识数据库实例,启动监听器,请判别相关实例是否 READY [oracle@redhat4 ~]$ lsnrctl status LSNRCTL for Linux: Versi ...
- 转 Android中进入系统设置界面
Android软件时,常常需要打开系统设置或信息界面,来设置相关系统项或查看系统的相关信息,这时我们就可以使用以下语句来实现:(如打开“无线和网络设置”界面) Intent intent = new ...
