流媒体知识总结

一、流媒体协议

1.1 基本概念

  各种流媒体协议都是将视频分解为多个块,然后发送给视频播放端,播放端接收、重新组合、完成播放。根据传输是否顺序传输,还有实时流式传输和顺序流式传输的区别。接下来我们就介绍常用的几种常用技术:RTP、RTSP、RTMP、HLS、SRT、WebRTC。

1.1.1 HLS

  HLS是HTTP Live Streaming,由Apple公司提出的基于短连接HTTP的媒体流传输协议,用于实时音视频流的传输。由于其实基于HTTP协议的,所以网络支持很好,能方便穿透防火墙或代理服务器。

  HLS协议将整条流切割成一个小的能够经过HTTP下载的媒体文件,而后提供一个配套的媒体列表文件M3U8。客户端拿到M3U8后,根据内容顺序地拉取媒体文件播放。

  HLS有很明显的优势,因为其针对HTTP协议进行针对设计,客户端只须要支持HTTP请求即可。另外,使用HTTP协议网络兼容性好,HTTP数据包也能够方便地经过防火墙或者代理服务器,CDN支持良好。还有就是Apple公司提出的HLS,Apple全系列产品支持HLS协议,Android也已经加入了对HLS的支持。

  但HLS由于采用切片式的多媒体文件,因为切片需要时间编码,所以切片的延时不可避免。另外使用HTTP短连接,需要不断的与server建立连接,且需要完成TCP的三次握手,四次挥手,交互耗时长。所以HLS的延时较高,难以用到时延要求更严格的直播场景。另外,由于HLS切片一般较小,海量碎片在文件分发、一致性缓存都有较大挑战。

1.1.2 m3u8

学习链接:https://juejin.cn/post/7213240802378498104?searchId=2023122115444110F5C8E06C9094E62BDF

  m3u8 是「MPEG-3 Unicode UTF-8」的缩写,其中 MPEG-3 是一种音频压缩标准,而 Unicode UTF-8 是一种字符编码标准。因此,m3u8 文件是一种使用 MPEG-3 音频编码和 Unicode UTF-8 字符编码的多媒体文件格式。它用于指定分段视频文件的地址和顺序,以便于流媒体播放器能够按照正确的顺序请求和播放这些分段文件。m3u8 通常用于 HLS 协议的视频流媒体传输中。
下方是控制台中获取的 m3u8 格式文件:
在这里插入图片描述

一个 m3u8 格式的文件通常包含以下内容:

  • #EXTM3U:文件头,指示这是一个 m3u8 格式文件。
  • #EXT-X-VERSION:指定 HLS 版本号。
  • #EXT-X-MEDIA-SEQUENCE:指定第一个分段的序号。
  • #EXT-X-TARGETDURATION:指定每个分段的时长。
  • #EXTINF:指定每个分段的时长和 URL 地址。
  • URL地址:分段视频文件的 URL 地址。

m3u8 文件中的每个 URL 地址指向一个包含媒体数据的分段文件。播放器会按照m3u8 文件中指定的顺序依次请求这些分段文件,并在播放过程中动态地调整分段文件的请求顺序和质量,以实现更稳定和流畅的播放效果。

相关推荐

  1. 媒体知识总结

    2023-12-22 07:56:09       43 阅读
  2. 网络视频监控和媒体技术-基础知识整理

    2023-12-22 07:56:09       25 阅读
  3. 网络媒体协议——RTMP

    2023-12-22 07:56:09       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-22 07:56:09       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-22 07:56:09       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-22 07:56:09       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-22 07:56:09       20 阅读

热门阅读

  1. 在 Go 语言中使用 regexp 包处理正则表达式

    2023-12-22 07:56:09       34 阅读
  2. Ansible3

    Ansible3

    2023-12-22 07:56:09      40 阅读
  3. css学习笔记5

    2023-12-22 07:56:09       41 阅读
  4. Android 9.0 应用权限屏蔽位置信息

    2023-12-22 07:56:09       29 阅读
  5. MongoDB的面试题与答案

    2023-12-22 07:56:09       34 阅读
  6. GBASE南大通用集群负载均衡

    2023-12-22 07:56:09       31 阅读
  7. hive中map相关函数总结

    2023-12-22 07:56:09       48 阅读
  8. unity中Android各版本对应的SDK版本

    2023-12-22 07:56:09       39 阅读