博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Codecs系列】音视频常见传输协议(RTP/RTSP/UDP)介绍
阅读量:2041 次
发布时间:2019-04-28

本文共 2381 字,大约阅读时间需要 7 分钟。

Date: 2019.3.25


前言

    流媒体音视频传输在不同的网络环境和应用情况下,需要不同的传输协议,比如HTTP,RTSP,UDP等。本文主要是简单介绍音视频常见传输协议及其组合使用方式。

1、参考

RTSP协议详解:

2、音视频常见传输协议(RTP/RTSP/UDP)介绍

多播路由是一个很好的技术,在Internet上实现了对数据的“广播”,不同于广播的是,由于广播风暴的问题,路由器是禁止广播数据跨路由传送 的。而多播则很好的解决了这个问题。现在M$软件如:Netmeeting,WMS就广泛运用了多播这种技术。这里讨论的是怎么样把你的Linux架设成 一个多播路由器

(一般的网关、路由器是不支持多播数据包通过的)。

2.1、传输协议

网络摄像机提供很多基于IP网络的传输协议,以尽可能地保证音视频数据,PTZ控制数据网络传输质量。实时视频流经过IP网络传输,通过多种协议组合,适应各种复杂的网络传输环境。

  • RTP(Realtime Transport Protocol),实时传输协议,其专门针对实时流媒体而设计, RTP的基本功能是将几个实时数据流复用到一个UDP分组流中,这个UDP流可以被发送给一台主机(单播模式),也可以被传送给多台目标主机(多播模式)。 因为RTP仅仅封装成常规的UDP,理论上路由器不会对分组有任何特殊对待,但现在高级的路由设备都有针对RTP协议优化选项。RTP协议的时间戳机制, 不仅减少了抖动的影响,而且也允许多个数据流相互之间的同步,这样可以很方便地基于I/O事件对视频图像进行字幕添加,网络摄像机往往将音视频编码数据封 装成RTP分组。

  • RTCP(Realtime Transport Control Protocol)实时传输控制协议,其是RTP的姊妹协议,它处理反馈、同 步和用户界面等,但是不传输任何数据。它的主要功能是用来向源端提供有关延迟、抖动、带宽、拥塞和其它网络特性的反馈信息,编码进程可以充分利用这些信 息。因此当网络状况较好时,可以提高数据速率(从而达到更好的质量),而当网络状况不好时,它可以减少数据速率。通过连续的反馈信息,编码算法可以持续地作相应的调整,从而在当前条件下尽可能地提供最佳的质量。

  • RTSP(Real Time Streaming Protocol)实时流协议,RTSP协议利用推式服务器(push server)方 法,让音视频浏览端,发出一个请求,网络摄像机只是不停地向浏览端推送封装成RTP分组的音视频编码数据,网络摄像机可以用很小的系统开销实现流媒体传 输。

  • HTTP(HyperText Transfer Protocol)超文本传输协议,网络摄像机通过HTTP协议提供Web访问功能,很方便地将音视频数据经过复杂网络传输,但实时音视频支持很不理想。

  • UDP(User Datagram Protocol)数据报协议,是最基本的网络数据传输协议,利用IP协议提供网络无连接服务,常用来封装实时性强的网络音视频数据,即使网络传输过程中发生分组丢失现象,在客户端也不会影响音视频浏览。

  • TCP(Transmission Control Protocol)传输控制协议,利用IP协议提供面向连接网络服务,为在不可靠的互联网络上提供一个可靠的端到端字节流而设计。TCP协议往往要在服务端和客户端经过多次“握手”才能建立连接,因此利用TCP传输实时性较强的音视频流开销较大,如果网络不稳定,音视频抖动的现象明显。利用其可靠性常用来传输网络摄像机管理命令,如PTZ,I/O设备控制命令。

2.2、传输协议组合

网络摄像机往往应用RTSP、RTP、RTCP、HTTP、UDP、TCP协议的不同组合来传输实时性较强的音视频流。常见的协议组合如下:

  • RTP+RTSP协议组合,这种协议组合(RTP可以用TCP、UDP协议封装,RTSP用TCP协议封装),在正常网络环境里,可以保证客户端浏览实时音视频,厂商往往推荐网络摄像机采用这种协议组合。一些网络设备也常常支持RTP+RTSP多播模式。

  • RTP/RTSP协议组合,RTP分组封装成RTSP分组,有些网络防火墙只让RTSP协议分组通过。但网络摄像机又要以RTP协议提供实时音视频。这种组合方式在没有办法的情况下增加了网络负载和客户端管理系统的复杂度。

  • RTP/RTSP/HTTP协议组合,在RTP/RTSP的数据基础上增加了HTTP封装,这种协议组合主要是为了适应网络防火墙只允许使用HTTP协议的网络环境。虽然网络负载加大,但网络摄像机可以适应更复杂的互联网环境。

  • UDP(TCP)协议,一些网络摄像机为了适应国内网络带宽状况不佳的 状况,没有利用RTP+RTSP应用层协议封装音视频数据,对音视频流只采用UDP或TCP传输层协议封装。这样音视频流就可以利用很小的网络带宽传输流 媒体。这种协议组合也可以提供类似RTP+RTSP高级功能,但对网络路由设备基于RTP+RTSP组合优化特性不能利用。

  • UDP(TCP)/HTTP协议组合,将音视频流数据封装成HTTP数据分组,然后用UDP(TCP)协议传输到客户端。这种协议方式可适应复杂的互联网环境,可以穿透大多数网络防火墙。

各种传输层协议组合保证了音视频和PTZ数据实时传输的可靠性,但网络摄像机内置的处理器计算能力限制,导致并发访问的用户数量有限。这样往往不 能满足并发访问要求较高的应用环境,网络摄像机往往利用具备多播功能的网络传输设备,响应更多的并发访问要求。有些网络摄像机客户端软件功能强大,利用数 据转发机制,充当可以响应更多并发访问用户的“虚拟网络摄像机”,这种方式适应于也适应PTZ网络摄像机。对大规模数字化视频监控网络建设有重要意义。


THE END!

转载地址:http://cpnof.baihongyu.com/

你可能感兴趣的文章
内存堆与栈
查看>>
Leetcode C++《每日一题》20200621 124.二叉树的最大路径和
查看>>
Leetcode C++《每日一题》20200622 面试题 16.18. 模式匹配
查看>>
Leetcode C++《每日一题》20200625 139. 单词拆分
查看>>
Leetcode C++《每日一题》20200626 338. 比特位计数
查看>>
Leetcode C++ 《拓扑排序-1》20200626 207.课程表
查看>>
Go语言学习Part1:包、变量和函数
查看>>
Go语言学习Part2:流程控制语句:for、if、else、switch 和 defer
查看>>
Go语言学习Part3:struct、slice和映射
查看>>
Go语言学习Part4-1:方法和接口
查看>>
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
Leetcode C++ 剑指 Offer 09. 用两个栈实现队列
查看>>
Leetcode C++《每日一题》20200707 112. 路径总和
查看>>
Leetcode C++ 《第198场周赛-2》 1519. 子树中标签相同的节点数
查看>>
Leetcode C++ 《第199场周赛》
查看>>
Leetcode C++ 《第200场周赛》
查看>>
Leetcode C++ 《第201场周赛》
查看>>
云原生 第十章 应用存储和持久化数据卷:存储快照和拓扑调度
查看>>
云原生 第十一章 应用健康
查看>>
Leetcode C++ 《第202场周赛》
查看>>