【转】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的节点或终端上读取 ...
随机推荐
- linux网络配置、环境变量以及JDK安装(CentOS 6.5)
由于需要搭建hadoop平台,但是苦于没有现成可用的linux服务器,只好自己下载了CentOS 6.5从头装起,安装过程中遇到了很多问题,比如网络配置.时钟同步.环境变量配置.以及各种服务的启停,还 ...
- Project Euler 78:Coin partitions
Coin partitions Let p(n) represent the number of different ways in which n coins can be separated in ...
- Sina App Engine(SAE)入门教程(7)- Storage使用
参考阅读 sae storage api 文档 Storage 说明文档 Storage 大文件上传说明 storage是什么? 因为sae禁用了代码环境的本地读写,但是在网站运行的过程中,必定会出现 ...
- 一个java的DES加解密类转换成C#
原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util; import java.security.*; //i ...
- phpcms V9首页 频道页 列表页 推荐位 简单获取文章浏览量和评论统计
phpcms V9首页 频道页 列表页 推荐位 简单获取文章浏览量和评论统计 列表取得数据方法: {pc:content action="lists" catid="$c ...
- C++:向函数传递对象(对象、对象指针、对象引用)
3.5.1 使用对象作为函数参数,其方法与传递基本类型的变量相同 //例3.21 使用对象作为函数参数 #include<iostream> using namespace std; ...
- 转Struts 权限控制
权限最核心的是业务逻辑,具体用什么技术来实现就简单得多. 通常:用户与角色建立多对多关系,角色与业务模块构成多对多关系,权限管理在后者关系中. 对权限的拦截,如果系统请求量大,可以用Struts2拦截 ...
- Spring Boot实现一个监听用户请求的拦截器
项目中需要监听用户具体的请求操作,便通过一个拦截器来监听,并继续相应的日志记录 项目构建与Spring Boot,Spring Boot实现一个拦截器很容易. Spring Boot的核心启动类继承W ...
- Maven远程仓库
根据Apache Maven声明:"只有当在本地和中心仓库找不到所需的依赖文件,才会到远程仓库去下载". 当在Maven里声明了一个本地和中心仓库都没有的库文件时,Maven会停止 ...
- (2)WinForm中改变Tab选项卡的顺序
Tab选项卡选中,在其属性中找到TabPages这个属性.点进去,可以通过上下移动标签卡改变标签卡的顺序.
