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 audioPid and videoPid attributes were introduced in firmware version 2.2.5 to replace the deprecated exterityVideoPid and exterityAudioPid attributes (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的更多相关文章

  1. RTSP Monitor的总结

    项目描述: 一个本地的IP  Camera 实时发送RTSP视频流到本机上,视频的帧是H264编码,需要解码并显示到屏幕上.并把每帧视频对应的时间戳转换成日期年月日时分秒打印到每帧的图像上显示. 使用 ...

  2. 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 ...

  3. Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配

    分布式程序运算是一种水平扩展(scale-out)运算模式,其核心思想是能够充分利用服务器集群中每个服务器节点的计算资源,包括:CPU.内存.硬盘.IO总线等.首先对计算任务进行分割,然后把细分的任务 ...

  4. RFC-RTSP

    Network Working Group H. Schulzrinne Request for Comments: 2326 Columbia U. Category: Standards Trac ...

  5. rtsp简介

    https://wenku.baidu.com/view/b10415dabd64783e08122b9c.html 1      概要 RTSP(Real Time Streaming Protoc ...

  6. Akka-Cluster(3)- ClusterClient, 集群客户端

    上篇我们介绍了distributed pub/sub消息传递机制.这是在同一个集群内的消息共享机制:发布者(publisher)和订阅者(subscriber)都在同一个集群的节点上,所有节点上的Di ...

  7. Akka-Cluster(2)- distributed pub/sub mechanism 分布式发布/订阅机制

    上期我们介绍了cluster singleton,它的作用是保证在一个集群环境里永远会有唯一一个singleton实例存在.具体使用方式是在集群所有节点部署ClusterSingletonManage ...

  8. PICE(4):MongoDBStreaming - gRPC Protobuf conversion

    前两篇我们介绍了JDBC和Cassandra的gRPC streaming实现.相对MongoDB来说,JDBC和Cassandra支持字符类型的query语句SQL,CQL,所以把query指令转换 ...

  9. PICE(3):CassandraStreaming - gRPC-CQL Service

    在上一篇博文里我们介绍了通过gRPC实现JDBC数据库的streaming,这篇我们介绍关于cassandra的streaming实现方式.如果我们需要从一个未部署cassandra的节点或终端上读取 ...

随机推荐

  1. 【c++基础】const、const指针、const引用

    一.const常量 声明时必须同时初始化(和“引用”一样) 二.const指针 三.const引用 引用本身和引用的对象都是const对象,可以用字面值来赋给const引用(普通引用则不行) ; co ...

  2. REST_FRAMEWORK加深记忆-极致抽象,极致完结

    余下的就是静心看官方文档了. 这个是最抽象的了. urls.py """tutorial URL Configuration The `urlpatterns` list ...

  3. javascript 在一个函数参数中包含另一个函数的引用

    javascript函数的参数包含另一个函数的情形: <script> //b函数的参数func为另一个函数 function b(a, func) {  alert(a); //调用参数 ...

  4. 自动装配【Spring autowire】

    public class AutoWiringDao { private String daoName; public void setDaoName(String daoName) { this.d ...

  5. codeforces D

    D. Mishka and Interesting sum time limit per test 3.5 seconds memory limit per test 256 megabytes in ...

  6. 【mongoDB中级篇②】索引与expain

    索引的操作 数据库百分之八十的工作基本上都是查询,而索引能帮我们更快的查询到想要的数据.但是其降低了数据的写入速度,所以要权衡常用的查询字段,不必在太多字段上建立索引. 在mongoDB中默认是用bt ...

  7. SpringMVC学习总结(四)——基于注解的SpringMVC简单介绍

    SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request ...

  8. SqlDataAdapter用法

    SqlDataAdapter和SqlCommand区别: SqlCommand就是是命令了,可以用它来执行SQL命令: SqlDataAdapter就是数据适配器了,它是用于在数据源和数据集之间通讯的 ...

  9. Android ActionBar中的下拉菜单

    在ActionBar中添加下拉菜单,主要有一下几个关键步骤: 1. 生成一个SpinnerAdapter,设置ActionBar的下拉菜单的菜单项 2. 实现ActionBar.OnNavigatio ...

  10. Android 学习(一)

    这几天被一些功能折磨的要死了,于是放下了这个,看点其它的东西,算是转移一下焦点.床头放了不少书籍,也都被翻阅过,翻阅过,却不曾细细的品味过,俗话说,书可借而不可买也,这话用到自己的身上丝毫不错.因为是 ...