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. 【redis】05Redis的常用命令及高级应用

    Redis常用命令     Redis提供了非常丰富的命令,对数据库和个中数据类型进行操作, 这些命令呢,可以在Linux终端使用. 分为两大类的命令,一种是键值相关的命令,一种是服务器相关的命令, ...

  2. Network Saboteur(Rand版)

    poj2531:http://poj.org/problem?id=2531 题意:给你一个图,图中点之间会有边权,现在问题是把图分成两部分,使得两部分之间边权之和最大.题解:随机算法 #includ ...

  3. JsRender系列demo(9)自定义函数

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. C# 在vs2010中打开vs2012的项目(转)

    在vs2010中打开vs2012的项目 今天在自己的电脑上装了vs2010然后要打开之前在vs2012上创建的sln文件 被提示-- 无法打开在新版本上创建的sln--解决方案--文件 其实vs201 ...

  5. 用django-tinymce搞个富文本编辑器

    玩过一圈之后,这些应用慢慢变得简单: 步骤如下: 一,安装: pip install django-tinymce 二,配置APP: INSTALLED_APPS = ( ... 'tinymce', ...

  6. maven 命令备忘

    1. 打包时 不执行测试 mvn package -Dmaven.test.skip=true

  7. hdu2015

    http://acm.hdu.edu.cn/showproblem.php?pid=2015 #include<iostream> #include<stdio.h> #inc ...

  8. EXCEL排序

    题目描述:     Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能.     对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始).随后在 N ...

  9. [转]C++四种cast操作符

    http://blog.csdn.net/starryheavens/article/details/4617637 C 风格(C-style)强制转型如下: (T) expression 或 T(e ...

  10. Unity打包APK横屏时的注意事项

    由于你在Unity设置了横屏. 所以也需要在安卓的AndroidManifest.xml文件中, application/activity下声明为横屏.否则会黑屏,根本不给你报错,愁死你. 加上这一句 ...