【音视频】流媒体常见协议

RTSP

RTSP是一种应用层协议,用于控制实时流媒体服务,如音视频的播放、暂停、快进、倒回等功能。RTSP并不直接传输数据,而是用于建立、控制和终结多媒体流会话。它允许用户向服务器发出命令,如请求开始或停止传输流、改变速度等。RTSP的交互过程包括描述、设置、播放、暂停等操作,它可以指定使用哪些传输协议(如RTP/UDP、TCP等)来传输媒体数据。

RTP (实时传输协议)和 RTCP

是用于Internet上针对多媒体数据流的一种传输层协议.RTP 协议和 RTP 控制协议 RTCP 一起使用,而且它是建立在 UDP 协议上的.RTP 不像 http 和 ftp 可完整的下载整个影视文件,它是以固定的数据率在网络上发送数据,客户端也是按照这种速度观看影视文件,当影视画面播放过后,就不可以再重复播放,除非重新向服务器端要求数据。

RTSP和RTP在流媒体传输系统中扮演着不同的角色。RTSP用于管理和控制整个流媒体会话,例如初始化会话、选择传输协议、指示何时开始和结束流媒体数据的传输等。一旦RTSP建立了会话并决定了传输参数,实际的音视频数据则通过RTP协议传输。也就是说,RTSP是“导演”,指导整个流媒体会话的操作流程;而RTP则是“演员”,实际执行数据的传递。

HLS

是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。 它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。

HLS 协议由三部分组成:HTTP、M3U8、TS。这三部分中,HTTP 是传输协议,M3U8 是索引文件,TS 是音视频的媒体信息。
HLS 的 m3u8,是一个 ts 的列表,也就是告诉浏览器可以播放这些 ts 文件。

每一个 .m3u8 文件,分别对应若干个 ts 文件,这些 ts 文件才是真正存放视频的数据,m3u8 文件只是存放了一些 ts 文件的配置信息和相关路径,当视频播放时,.m3u8 是动态改变的,video 标签会解析这个文件,并找到对应的 ts 文件来播放,所以一般为了加快速度,.m3u8 放在 web 服务器上,ts 文件放在CDN(内容分发网络)上。

视频的编码格式:H.264、H.265(同样大小的文件,H.265 编码的视频质量是 H.264 的二倍。) 音频的编码格式:AAC、MP3、AC-3 视频的封装格式:ts 保存 ts 索引的 m3u8 文件。

RTMP (Real Time Message Protocol, 实时消息协议)

该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。

由于 RTMP 播放视频需要依赖 Flash 插件。而 Flash 插件多年来一直受安全问题困扰,正在被迅速淘汰。因此,目前 RTMP 主要用于提取 stream。也就是,当设置解编码器将视频发送到托管平台时,视频将使用 RTMP 协议发送到 CDN,随后使用另一种协议(通常是HLS)传递给播放器。

WebRTC

WebRTC 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。 WebRTC 由用于 Web 实时通信的 JavaScript API 和一组通信协议构成,支持网络上的任何已连接设备成为 Web 上潜在的通信端点。
WebRTC主要让浏览器具备三个作用。

  1. 获取音频和视频
  2. 进行音频和视频通信
  3. 进行任意数据的通信

要实现去Flash应当在播出时摒弃rtmp协议,采用HLS、HTTP-FLV、WebRTC、WebSocket来传输直播视频流,客户端使用MSE扩展实现数据接收和视频播放
HTML5的Video控件标签支持HLS协议播放,经测试确实支持m3u8的播放。
HTML5视频解码器没有指定,由浏览器开发者决定。当前各主流浏览器video元素主要支持三种视频格式ogg, mp4, webm。MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值