08 - 音视频服务 - 流式媒体

430 阅读4分钟

这是我参与更文挑战的第13天,活动详情查看: 更文挑战

音视频服务类型

流式存储音频/视频 - 边下载边播放

流式实况音频/视频 - 边录制边发送

交互式音频/视频 - 实时交互式通信

下载音视频步骤

  1. 用户在浏览器上用HTTP协议向服务器请求下载某个音频/视频文件
  2. 服务器如有此文件就发送给浏览器. 会花费很长时间
  3. 当浏览器完全收下这个文件后, 就可以用媒体播放器进行解压缩, 然后播放

元文件下载音视频

  1. 浏览器用户使用HTTP的GET报文接入服务器. 这个超链指向一个元文件. 这个元文件有实际的音频/视频文件的统一资源定位符URL
  2. 服务器把该元文件装入HTTP响应报文的主体, 发回给浏览器
  3. 浏览器调用相关的媒体播放器, 把提取出的元文件传送给媒体播放器
  4. 媒体播放器使用元文件中的URL, 向服务器发送HTTP请求报文, 要求下载音频/视频文件
  5. 服务器发送HTTP响应报文, 把该音频/视频文件发送给媒体播放器. 媒体播放器边下载边解压缩边播放

媒体服务器

为了更好的提供流式音视频文件服务, 现在使用两个分开的服务器, 一个是普通的Web服务器, 一个是媒体服务器

媒体服务器也称为流式服务器, 支持流式音频和视频的传送

媒体播放器不是向Web服务器而是向媒体服务器请求音频/视频文件

媒体服务器和媒体播放器之间用另外的协议进行交互

UDP传送音视频文件的缺点

  1. 由于网络情况多变, 播放器很难始终按规定的速率播放
  2. UDP分组有可能会被防火墙阻拦掉
  3. 使用UDP传送流式媒体文件时, 如果用户想要控制媒体的播放, 还需要另外的协议RTP和RTSP

TCP传送流式音视频的步骤

  1. 用户使用HTTP获取存储在Web服务器中的音视频文件, 然后把音视频文件传送到TCP发送缓存中. 若发送缓存已满, 就暂停止发送

  2. 从TCP发送缓存通过互联网向客户机中的TCP接收缓存传送视频数据, 直到接收缓存被填满

  3. 从TCP接收缓存把音视频数据再传送到应用程序缓存(即流媒体播放器的缓存). 当这个缓存中的视频数据存储到一定程序时, 就开始播放. 一般不超过1分钟

  4. 在播放时, 媒体播放器周期性的把视频数据按帧读出, 经解压缩后, 把视频节目显示在用户屏幕上

RTSP - 实时流式媒体

RTSP本身不传送数据, 是一个多媒体控制协议

使用C/S方式工作, 用来使用户在播放从互联网下载的实时数据时能进行控制. 又称为"互联网录像机遥控协议"

要实现控制功能, 不仅要有协议, 还要有媒体播放器和媒体服务器

RTSP特点

RTSP是有状态的协议. 它记录客户机所处于的状态(初始化状态, 播放状态或暂停状态)

RTSP控制分组即可在TCP上传送, 又可在UDP上传送

RTSP没有定义音视频的压缩文案, 也没有规定音视频在网络中传送时应如何封装在分组中

RTSP没有规定音视频流在媒体播放器中应如何缓存

使用RTSP媒体服务器的工作过程

  1. 浏览器向服务器请求音视频文件
  2. 服务器从浏览器发送携带有元文件的响应
  3. 浏览器把收到的元文件传送给媒体播放器
  4. RTSP客户与媒体服务器的RTSP服务器建立连接
  5. RTSP服务器发送响应RESPONSE报文
  6. RTSP客户发送PLAY报文, 开始下载音视频文件
  7. RTSP服务器发送响应RESPONSE报文
  8. RTSP客户发送TEARDOWN报文断开连接
  9. RTSP服务器发送响应RESPONSE报文