RTP实时传输协议
RTP协议是包括一对协议:RTP和RTCP。 RTP传输数据,RTCP传输控制信息。 一般基于UDP,RTP使用偶数端口,RTCP使用下一个奇数端口。
层次关系: APP -> RTP -> UDP -> IP
1、RTP
RTP提供针对多媒体应用的端到端传输能力,主要用于流媒体的传输,包括音频和视频; 需要提供一些多媒体应用的特有功能:
(1)协商机制。解决音视频格式众多的问题。
(2)数据时间指示。让接受者知道数据包的时序关系,应用可以通过playback buffer来做平滑,还可以做音视频同步等。
(3)数据丢失指示。因为UDP不可靠,应用根据丢失数据的具体情况,做不同的操作,例如:I/B/P帧采取不同处理方式;动态调整编解码格式或分辨率,以便减少数据量。
(4)帧边界指示。一系列包的集合对应一帧,所以对一个完整的帧进行处理,比对单个包进行处理,会更合适。例如:丢弃一个完整的帧,只会卡顿,不会花屏;缩短或拉长两个单词之间的间隔,不会被用户察觉,但是改变某个单词本身的长度,体验就不好了。
上述功能,RTP的实现方式:
(1)由RTSP协商完成;
(2)(3)RTP Header有12字节的必填字段,其中包括时标和序号。时标是32位数值,是两次采样之间的间隔,用ticks表示,每个tick的时长在RTP配置文件或有效荷载格式中说明。 序号是16位数值,每个RTP包有一个序号。
2、RTCP
RTCP提供与数据流想联系的控制流。主要有三个功能:
(1)反馈应用程序和网络的性能;
(2)关联和同步来自同一个发送方的不同媒体流;
(3)运行发送方标识符,用于GUI显示。
参考资料:《计算机网络》《Computer Networks》,Larry L. Peterson, Bruce S.Davie。
RTP实时传输协议的更多相关文章
- 【转载】 IP实时传输协议RTP/RTCP详解
http://www.chinaitlab.com/cisco/RIP/832426.html 1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详 ...
- IP实时传输协议RTP/RTCP详解
1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...
- RTSP/RTP 媒体传输和控制协议
1 前言 本文档主要描述了 NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议. 本协议主要基于标准的 IETE 的 ...
- RTSP RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议
RTSP 编辑 RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetwo ...
- 视频流传输协议RTP/RTCP/RTSP/HTTP的区别 (转)
用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.之所以以前对这几个有点分不清,是因为CTC标准里没有对RTCP进行要求,因此在标准RTSP的代码中 ...
- 流媒体传输协议之 RTP (上篇)
本系列文章将整理各个流媒体传输协议,包括 RTP/RTCP,RTMP,希望通过深入梳理协议的设计细节,能够给流媒体领域的开发者带来一定的启发. 作者:逸殊 审核:泰一 介绍 RTP,即 real-ti ...
- 流媒体传输协议(rtp/rtcp/rtsp/rtmp/mms/hls)转
常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类.在流式传输的实现方案中,一般采用HTTP/TCP来传输控制信息,而用RTP/UDP来传输实时多媒体数据. 1 实时传输 ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- RTP、RTCP协议学习-2015.04.15
最近做视频编解码部分,传输采用RTP协议.对学习做个记录 1.简介 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工 ...
随机推荐
- xss处理
今天学习了xss,主要记载如下: https://blog.csdn.net/sdauzyh/article/details/74942737
- iOS Build Apps for the World WWDC
Programming Resources https://developer.apple.com/internationalization/ WWDC Session Videos Internat ...
- SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行
工作中用到的记录一下,游标的详细定义及说明请百度 --游标格式化数据 DECLARE cursor_jxsmb CURSOR FOR --定义一个游标 SELECT F0 FROM dbo.JXSMB ...
- 删除Docker镜像
删除镜像:1)先杀死镜像中所有容器 docker kill $(docker ps -a -q)2)删除镜像中所有容器: docker rm $(docker ps -a -q)3)删除镜像: ...
- Python 查看线程的进程id
import os from threading import Thread # from multiprocessing import Process def f1(n): print('1号',o ...
- 【消息中间件之RabbitMQ学习】-开篇-001
写在前面的话 项目中因为要用到消息中间件,当初极力推荐RabbitMq.但因为种种原因,最终选型为java+mongodb自实现一套分布式的消.没有用RabbitMq工作过,实属遗憾.因为个人来说实在 ...
- centos7 - mongodb3.6.5-配置文件
创建Linux管理员账号admin, 并加入wheel组,对mongodb, php等进行统一管理~ systemLog:destination: filelogAppend: truepath: / ...
- 测试那些事儿—selenium IDE 自动化测试
浏览器 Firefox Setup 35.0.1 安装完成后设置菜单栏 关闭浏览器自动更新 插件配置(必备武器) FireBug Firebug是firefox下的一个扩展,能够调试所有网站语言,如H ...
- flask 手机号码正则匹配的简单操作
1 导包 Import re 2 匹配邮箱 ret=re.match("[a-zA-Z0-9]{4,20}@163\.com",字符串) If ret: print(ret.gro ...
- 使用CUPS打印服务
目录 1. 测试环境 2 2. CUPS介绍 3 2.1 CUPS的配置文件 3 2.1.1 cupsd.conf 3 2.1.2 cups-files.conf 3 2.1.3 printcap 3 ...