流媒体相关内容总结文档格式.docx

上传人:b****6 文档编号:20432237 上传时间:2023-01-22 格式:DOCX 页数:19 大小:106.63KB
下载 相关 举报
流媒体相关内容总结文档格式.docx_第1页
第1页 / 共19页
流媒体相关内容总结文档格式.docx_第2页
第2页 / 共19页
流媒体相关内容总结文档格式.docx_第3页
第3页 / 共19页
流媒体相关内容总结文档格式.docx_第4页
第4页 / 共19页
流媒体相关内容总结文档格式.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

流媒体相关内容总结文档格式.docx

《流媒体相关内容总结文档格式.docx》由会员分享,可在线阅读,更多相关《流媒体相关内容总结文档格式.docx(19页珍藏版)》请在冰豆网上搜索。

流媒体相关内容总结文档格式.docx

<

sessionid>

networktype>

addresstype>

address>

s=<

sessionname>

i=<

sessiondescription>

u=<

URI>

e=<

emailaddress>

p=<

phonenumber>

c=<

connectionaddress>

b=<

modifier>

:

<

bandwidth-value>

t=<

starttime>

stoptime>

r=<

repeatinterval>

activeduration>

listofoffsetsfromstart-time>

z=<

adjustmenttime>

offset>

....

k=<

method>

encryptionkey>

a=<

attribute>

value>

m=<

media>

port>

transport>

fmtlist>

v=(协议版本)

o=(所有者/创建者和会话标识符)

s=(会话名称)

i=* 

(会话信息)

u=*(URI描述)

e=*(Email地址)

p=*(电话号码)

c=*(连接信息)

b=*(带宽信息)

z=*(时间区域调整)

k=*(加密密钥)

a=*(0个或多个会话属性行) 

时间描述:

t=(会话活动时间)

r=*(0或多次重复次数)

媒体描述:

m=(媒体名称和传输地址)

i=*(媒体标题)

c=*(连接信息—如果包含在会话层则该字段可选)

a=*(0个或多个媒体属性行)

例子

以AAC推送流为例。

具体代码:

DeviceHandler/AACHandler&

&

StreamSender

1.3.1推送过程

[2009-12-299:

58:

02:

234]

ANNOUNCErRTSP/

CSeq:

46

Content-Type:

application/sdp

Content-Length:

303

v=0

o=streamsender00INIP40.0.0.0

c=INIP4v2.4a6

m=audio0RTP/AVP96

a=control:

trackID=0

a=rtpmap:

96mpeg4-generic/44100/2

a=fmtp:

96streamtype=5;

profile-level-id=15;

mode=AAC-hbr;

config=1210;

SizeLength=13;

IndexLength=3;

IndexDeltaLength=3;

a=mpeg4-esid:

101

265]

RTSP/200OK

Server:

DSS/5.5.5(Build/;

Platform/Win32;

Release/Darwin;

state/beta;

Cseq:

46

SETUPrRTSP/

47

Transport:

RTP/AVP/TCP;

unicast;

mode=record;

interleaved=0-1

47

Cache-Control:

no-cache

Session:

14

Date:

Tue,29Dec200901:

17GMT

Expires:

RTP/AVP/TCP;

RECORDrRTSP/

48

281]

RTP-Info:

url=r1.3.2播放过程

47:

765]

OPTIONSrRTSP/

6

User-Agent:

VLCmediaplayer(LIVE555StreamingMedia9:

Public:

DESCRIBE,SETUP,TEARDOWN,PLAY,PAUSE,OPTIONS,ANNOUNCE,RECORD

DESCRIBErRTSP/

7

Accept:

application/sdp

Content-length:

341

59:

02GMT

x-Accept-Retransmit:

our-retransmit

x-Accept-Dynamic-Rate:

1

Content-Base:

r00INIP40.0.0.0

s=\

c=INIP40.0.0.0

t=00

a=tool:

sdrv2.4a6

*

781]

8

9

PLAYrRTSP/

Range:

npt=

796]

npt=now-

url=rRTP协议

RTP(Real-timeTransportProtocol,实时传输协议[RFC1889]、[RFC3550]、[RFC3551]),它是由IETF的多媒体传输工作小组1996年在RFC1889中公布的。

RTP本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。

RTP并不保证传送或防止无序传送,也不确定底层网络的可靠性。

RTP实行有序传送,RTP中的序列号允许接收方重组发送方的包序列。

参考StreamSender项目。

/*tcp通道中传输rtp数据。

size:

4*/

struct_rtpTcpHead

{

u_int8symbol;

0001”3.1.18F

3.1.20IN0.0.0

m=video554RTP/AVP96

96H264/90000

96packetization-mode=1;

profile-level-id=42e014;

sprop-parameter-sets=Z0LgFNoFglE=,aM4wpA==

201

a=Width:

integer;

352

a=Height:

288

a=framerate:

5

[2009-12-3015:

09:

45:

843]

875]

2

890]

2

268

Wed,30Dec200907:

10:

00GMT

906]

3

url=r3.1.3播放过程

30:

859]

VLCmediaplayer(LIVE555StreamingMedia15:

364

m=video0RTP/AVP96

RTP/AVP;

client_port=2770-2771

921]

309628

45GMT

source=15:

4

url=rMPEG4

MPEG4传输参考[RFC3016]、[RFC3640]两篇文档,其中,[RFC3016]支持“mp4V-ES”视频传输方式,还支持“mp4A-LATM”AAC音频传输方式,但是,据说它没有使用MPEG4的同步技术和流管理技术;

[RFC3640]支持“mpeg4-generic”方式传输音视频,还支持传输其它的ES流,如系统流等。

MPEG4视频一般采用mp4V-ES方式,AAC一般采用mpeg4-generic方式。

图3-2MPEG4的RTP负载结构

图3-2是MPEG4的RTP负载结构,其中,AUHeaderLength是2字节长度,表示AUHeader的总位数,并且是网络字节序。

AUHeader包含一些可选的字段,长度不固定,包含字段具体在SDP头中指定。

如果AUHeader的总位数不是8的倍数,那么AUHeader最后要添加填充位,位值为0,这时AUHeaderLength长度不包括填充位的长度。

另外,[RFC3640]上面还指出“TheAuxiliarySection”段,因为这个段一般不用,所以没有考虑。

[RFC3640]“3.2.1.1TheAU-header”一节中详细的介绍了AUHeader的字段。

3.2.1AAC

参考[RFC3640]。

[RFC3640]介绍了负载AAC的两种模式,LowBit-rateAAC和HighBit-rateAAC,我使用的是HighBit-rateAAC。

HighBit-rateAAC模式支持AAC帧大小可变,帧最大长度是8191字节。

HighBit-rateAAC模式需要在SDP中指定mode=AAC-hbr,AUHeader只包含了两个字段AU-size(13位)和AU-Index(3位),这样AUHeader的长度正好为2字节,AU-Index填充为0,AU-size是网络字节序。

传输AAC帧不需要包含ADTS头,RTP单帧、分片、组包传输除了RTP头字段中的RTP_MARK没有特别需要注意的地方。

AAC网络流使用ADTS格式保存,ADTS指AudioDataTransportStream,它依次包含固定头(28位)和可变头(28位)两部分,它们的具体结构如下:

adts_fixed_header()

syncword;

12位

ID;

1位

layer;

2位

protection_absent;

profile;

sampling_frequency_index;

4位

private_bit;

channel_configuration;

3位

original/copy;

home;

}

adts_variable_header()

copyright_identification_bit;

copyright_identification_start;

frame_length;

13位

adts_buffer_fullness;

11位

number_of_raw_data_blocks_in_frame;

详细说明下ADTS头的重要数据部分:

syncword同步字Thebitstring‘111111111111’,说明一个ADTS帧的开始。

IDMPEG标示符,设置为1.

layerIndicateswhichlayerisused.Setto‘00’

protection_absent表示是否误码校验

profile表示使用哪个级别的AAC,如01LowComplexity(LC)---AACLC

Mainprofile

LowComplexityprofile(LC)

ScalableSamplingRateprofile(SSR)

(reserved)

sampling_frequency_index表示使用的采样率下标

sampling_frequency_indexsamplingfrequeny[Hz]

0x096000

0x188200

0x264000

0x348000

0x444100

0x532000

0x624000

0x722050

0x816000

0x92000

0xa11025

0xb8000

0xcreserved

0xdreserved

0xereserved

0xfreserved

channel_configuration表示声道数

frame_length一个ADTS帧的长度包括ADTS头和rawdatablock.

adts_buffer_fullness0x7FF说明是码率可变的码流

number_of_raw_data_blocks_in_frame

表示ADTS帧中有 number_of_raw_data_blocks_in_frame+1个AAC原始帧.

所以说number_of_raw_data_blocks_in_frame==0表示说ADTS帧中有一个AAC数据块并不是说没有。

(一个AAC原始帧包含一段时间内1024个采样及相关数据)

AAC的RTP推送过程、播放过程及SDP的例子参见节,RTP数据传输参考DeviceHandler/StreamSender/和DeviceHandl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1