java rtcp_RTP/RTCP/RTSP

本文介绍了RTP/RTCP/RTSP协议的产生背景及与TCP/IP协议的区别,强调了它们在多媒体通信中的作用。RTP用于多媒体数据实时传输,RTCP负责传输质量监控,RTSP则提供对话和控制功能。同时提供了开源库和代码示例以供参考。
摘要由CSDN通过智能技术生成

一.产生的背景

随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。

这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输.

d13be2986fe5268a844db19d7baffd2c.png

RTP/RTCP,RTSP图例

8348797746a223d0ea8c9d03dee7c7aa.png

协议关系图

二.RTP/RTCP/RTSP协议与TCP/IP协议对比

那么,现在有个疑问是:为什么TCP/IP协议就不能满足多媒体通信的要求呢?

这是因为TCP有以下4个特点:

1.TCP重传机制

2.TCP拥塞控制机制

3.TCP报文头比UDP报文头要大

4.TCP的启动速度慢

RTP由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。

对比记忆

IP:数据传输

RTP:多媒体数据实时传输

TCP:保证数据传输可靠

RTCP:保证多媒体数据传输的可靠

三.RTP/RTCP,RTSP协议说明

RTP:

Realtime Transport Potocol 实时传输协议

RTP/RTCP是实际传输数据的协议

RTP传输音频/视频数据,如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server

整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议(即RTCP)

RTCP:

Realtime Transport Control Potocol 实时传输控制协议

RTP/RTCP是实际传输数据的协议

RTCP包括Sender Report和Receiver Report,用来进行音频/视频的同步以及其他用途,是一种控制协议

RTSP:

RealTime Streaming Potocol 实时流协议

RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作用

RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送,等等

代码实现:

开源库:

https://sourceforge.net/p/jlibrtp/code/HEAD/tree/jlibrtp/demo/org/jlibrtp/demo/SoundSenderDemo.java

githubdemo:https://github.com/loulei/RtpDemo_jlibrtp

csdndemo:http://blog.csdn.net/ericfantastic/article/details/49361069

6c504385d076087236dbcf77f62ddcaa.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值