• 常见的流媒体传输协议-如rtsp,hls等协议


    参考:
    流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls) https://blog.csdn.net/u013008311/article/details/80405241
    五种常见流媒体协议 https://www.jianshu.com/p/d71ceef679de
    HTTP Live Streaming 详解 https://github.com/pro648/tips/wiki/HTTP-Live-Streaming-详解

    这一部分介绍 HLS 主要组件如何协同工作以传递流媒体。从概念上讲,HTTP Live Streaming 包含三部分:服务器组件、分发组件和客户端软件
    在常见配置中,硬件编码器接受输入的音视频,将其编码为 HEVC 视频、AC-3 音频,输出片段化(fragmented)MPEG-4 文件或 MPEG-2 传输流,分段器(segmenter)软件将 stream 分割成系列短媒体文件,然后将短媒体文件放在 web 服务器上。segmenter 还会创建并维护一个包含媒体文件列表的索引文件(index file)。索引文件的 URL 在 web 服务器上发布,客户端读取索引文件,按顺序读取列出的媒体文件并播放,各片段间没有任何暂停或间隔。

    2.1 服务器组件
    服务器组件负责获取媒体输入流并对其进行数字编码,将其封装成适合传输的格式,并为分发做准备。
    对于直播,服务器需要媒体编码器(可以是现有的硬件),以及一种将编码的媒体分割成片段并保存为文件的方法,该方法可以是由 Apple 提供的 media stream segmented,也可以是第三方解决方案。
    2.2 分发组件
    分发系统是 web 服务器或 web 缓存系统,通过 HTTP 将媒体文件和索引文件传输到客户端。HTTP Live Streaming 协议不需要对服务器模块进行任何自定义即可用于传输内容,且 web 服务器只需要很少的配置。要实际使用 HTTP Live Streaming,需要将 HTML 页面或 app 作为接收器,还需要使用 web 服务器,以及将实时流编码为 HEVC 或 H.264视频、 ACC 或 AC-3 音频的分段 MPEG-4 媒体文件。
    2.3 客户端软件
    客户端软件负责确定所请求媒体资源类型、下载所需资源、重新组合资源,最后将媒体连续的呈现给用户。目前,Windows 10、macOS 10.6+、iOS 3.0+、Android 4.1+ 等均原生支持 HLS,大部分浏览器也支持HLS。点击这里可以查看各浏览器起始支持 HLS 版本。
    客户端软件使用标志流媒体位置的 URL 获取 index file,index file 指定可用媒体文件位置、解密密钥和可选流。选定流后,客户端按顺序下载可用媒体文件,每个文件包含一段连续的 stream。当拥有足够数据后,客户端播放重组的 stream。
    客户端负责获取解密密钥、身份认证,根据需要解密媒体文件。
    这些过程会一直持续,直到在 index file 遇到 EXT-X-ENDLIST tag。如果没有 EXT-X-ENDLIST tag,则 index file 是直播的一部分。在直播期间,客户端会定期拉去 index file 的新版本,并在新版本的 index file 中查找新的媒体文件和加密密钥,并将这些 URL 添加到队列。

  • 相关阅读:
    一百多套开发视频教程的下载地址
    http://blog.csdn.net/chlele0105/article/details/9056951
    http://kb.cnblogs.com/page/541862/
    Linux版本选择
    2015-2016规划
    PHP 类的继承一些知识点汇总
    PHP面向对象的基本属性分析
    PHP中的魔术方法总结 :
    PHP字符串常用操作函数
    php八中数据类型以及相互转换
  • 原文地址:https://www.cnblogs.com/weihua2020/p/13934443.html
Copyright © 2020-2023  润新知