RTPS流媒体简介

RTSP数据流简介:

RTSP_HEADER + RTP_HEADER + 1、视频:NALU_HEADER(type*) + FU_HEADER

2、音频: + 音频数据;

RTSP_HEADER payloadLen = RTSP_HEADER后的包长度;

dollar = 36(0x24);

RTP_HEADER payloadtype = 数据类型(H264 、G711_A、G711_U、MPEG.......);

timeStamp = 当前包的时间戳;

version = 2;

sequenceNumber
= 包序号,递增+1;

NALU_HEADER type(NAL_UNIT_TYPE) = 1、SEQ_PARAMETER_SET_RBSP(7):关键帧,取帧的高度和宽度;

2、SLICE_LAYER_WITHOUT_PARTITIONING_RBSP至SINGLE_TIME_AGGREGATION_PACKET_A之间时,数据前需要加上RTP_START_CODE;

FU_HEADER start_bit = 1、第一个包,需要加上RTP_START_CODE + (FU_HEADER.nri << 5) | (FU_HEADER.forbidden_zero_bit << 6) | FU_HEADER.type;

音频数据:每个包前加上RTP_AUDIO_CODE;

class RTSP_HEADER

{

public byte dollar; /* 8, $:dollar sign(24 decimal) */

public byte channelid; /* 8, channel id */

public short payloadLen; /* 16, payload length */

}

class RTP_HEADER

{

public byte csrccount;// 4位Bit;

public byte extension;// 1位Bit;

public byte padding;// 1位Bit;

public byte version;// 2位Bit;

public byte payloadtype;// 7位Bit;

public byte marker;// 1位Bit;

public short sequenceNumber;

public long timeStamp;

public int ssrc;

}

class NALU_HEADER

{

public byte type;// :5位Bit;

public byte nri;// :2位Bit;

public byte forbidden_zero_bit;// :1位Bit;

}

class FU_HEADER

{

public byte type;// :5位Bit; //和原始数据中nalu中的type一样

public byte reserve_bit;// :1位Bit; //保留位,必须是0

public byte end_bit;// :1位Bit; //指示是不是这一帧的最后一个分片

public byte start_bit;// :1位Bit; //指示是不是这一帧的第一个分片

}

public final byte[] RTP_START_CODE = new byte[] { 0x00, 0x00, 0x00, 0x01 };

public final byte[] RTP_AUDIO_CODE = new byte[] { 0x00, 0x01, (byte) 0xA0, 0x00 };

时间: 2024-10-10 22:40:05

RTPS流媒体简介的相关文章

流媒体学习一(RTP)

一.流媒体简介 随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡.目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择.通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大.如果换用流式传输的话,声音.影像.动画等多媒体文件将由专门的流媒体服务器负责向用户连续.实时地发送,这样用户可以不必等到整个文件全

基于 Red5 的流媒体服务器的搭建和应用

http://www.ibm.com/developerworks/cn/opensource/os-cn-Red5/ Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器.Red5 基于 Java 和一些功能强大的开源框架,为企业级应用奠定了标准.它使用 RTMP,RTMPT,RTMPS 和 RTMPE 流媒体协议, 支持:将音频(MP3)和视频(FLV,MP4,F4V,3GP)转换成播放流:录制客户端播放流:共享对象:现场直播流发布:远程调用.Red5 为即时通信,远程教

RTP、RTCP及媒体流同步

转自:http://blog.163.com/liu_nongfu/blog/static/19079414220139169225333/ 一.流媒体简介 流媒体是指在internet中使用流媒体技术的连续时基媒体,例如视频.音频或多媒体文件.流式传输方式是将音视频.动画等多媒体文件经过压缩后分成一个个小数据包,当用户端发出请求时,由服务器端向用户端实时.连续传送这些小数据包,动态变化的网络可能使各个包选择不同的路由,故到达用户端的时间延迟也就不同.在用户端用播放器播放时,需要为接收数据开辟缓

主流视频格式介绍

现在存在各种视频太多了,工作需要,所以将它们都记录下来,至少也该知道它到底是怎么一回事,虽然没有办法去理解所有视频使用的算法,但是了解一下还是有必要的. MPEG Moving Picture Expert Group,即运动图像专家组格式,是以下MPEG-1.MPEG-2等视频格式的总称,VCD.SVCD.DVD就是这种格式.MPEG格式是运动图像 压缩算法的国际标准,它采用了有损压缩方法从而减少运动图像中的冗余信息. MPEG的压缩方法保留相邻两幅画面绝大多数相同的部分,而把后续图像中和前面

RTP、RTCP、RTSP 概念

用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制.同步. 之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中没有看到相关的部分.而在私有RTSP的代码中,有关控制.同步等,是在RTP Header中做扩展定义实现的. 另外,RFC3550可以看作是RFC1889的升级文档,只看RFC3550即可.  RTP  Real-time Transport Protocol)是用于Internet上针对多媒体数

流媒体技术简介

流媒体技术简介 随着互联网的普及,利用网络传输声音与视频信号的需求也越来越大.广播电视等媒体上网后,也都希望通过互联网来发布自己的音视频节目.但是,音视频在存贮时文件的体积一般都十分庞大.在网络带宽还很有限的情况下,花几十分钟甚至更长的时间等待一个音视频文件的传输,不能不说是一件让人头疼的事.流媒体技术的出现,在一定程度上使互联网传输音视频难的局面得到改善. 传统的网络传输音视频等多媒体信息的方式是完全下载后再播放,下载常常要花数分钟甚至数小时.而采用流媒体技术,就可实现流式传输,将声音.影像或

流媒体服务器

常见的流媒体相关协议: 名称 描述 rtmp adobe公司开放的实时流媒体协议,在互联网直播中应用广泛 rtsp 开源的实时流媒体协议,用于信令交互,在监控视频中应用广泛 sdp 流描述协议,配合rtsp协议使用 rtp 实时传输协议,配合rtsp协议使用,用于传输流媒体数据 rtcp 实时传输控制协议,配合rtp协议使用,用于控制数据传输 常见的开源流媒体服务器: 支持协议 项目名称 简介 rtmp nginx-rtmp-module 开源rtmp服务器,作为nginx服务器的一个模块,支持

iOS流媒体

MPMoviePlayerController 简介MPMoviePlayerController既支持本地音视频播放也支持网络流媒体播放,功能已经十分完善了,流媒体项目常用的需求都可以满足,比如播放.暂停,快进.后退.监听播放器的播放状态.截图等功能,同时MPMoviePlayerController提供了一个简单的全屏播放界面,可以轻松实现简单的流媒体播放需求,如果需要深度自定义一个视频播放器,可以将MPMoviePlayerController的view添加到自定义的控制器中,然后再讲一些

nginx上搭建HLS流媒体服务器

http://blog.csdn.net/cjsafty/article/details/7922849 简介:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议. 是苹果公司QuickTime X和iPhone软件系统的一部分.它的工作原理是把整个流分成一个个小的基于HTTP 的文件来下载,每次只下载一些.当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速 率下载同样的资源,允许流媒体会话适应不同的数据速率.在开始一个