zoukankan      html  css  js  c++  java
  • 安放互联网直播HLS直播流在Android系统能播放但IOS系统无法直播问题解决

    随着移动设备和5G应用的普及,互联网直播越来越往移动端转移,除了手机APP,在进行网页H5无插件直播时,如果做到各系统、各品牌、各终端的全覆盖观看,是当前亟待解决的问题。

    最近我们有用户在使用国标GB28181流媒体服务器进行手机直播时发现,使用Android手机直播HLS流时,画面流畅;而使用苹果时却不行,播放会出现延时、卡段、播不出来的现象。基于此,今天就为大家分析下HLS直播为什么会出现这种情况?

    首先,我们知道,HLS十分适应H5的要求,是移动端浏览器最为贴合的直播方案,唯一的缺点是延时大。

    HTTP Live Streaming 并不是一个真正实时的流媒体系统,这是因为对应于媒体分段的大小和持续时间有一定潜在的时间延时。在客户端,至少在一个分段媒体文件被完全下载后才能够开始播放,而通常安卓系统要求下载完两个媒体文件之后才开始播放以保证不同分段音视频之间的无缝连接。而苹果系统则要求是3个。

    在客户端开始下载之前,必须等待服务器端的编码器和流分割器至少生成一个TS文件,流媒体服务器软件将接收到的流每缓存一定时间后包装为一个新的TS文件,然后更新m3u8文件。m3u8文件中只保留最新的几个片段的索引,以保证观众任何时候连接进来都会看到较新的内容,实现近似直播的效果。这种方式的理论最小延时为一个ts文件的时长,一般为2-3个ts文件的时长。

    所以,苹果系统在访问HLS直播流时,需要下载完3个TS文件方可进行播放,若是没有3个TS文件,播放途中就会出现请求不到服务器的情况,造成播放延时、直播画面播放不出来的问题。

    那么苹果系统的这种问题应该如何解决呢?此过程中对网络及摄像头码流的要求至关重要,可以采用流媒体服务器直播非按需操作,按需直播能够减少带宽流量和服务器性能占用,最优的提高服务器的使用效率。或者通过降低视频码流,实现有效利用最大上行带宽。

  • 相关阅读:
    【Leetcode】【Easy】Remove Duplicates from Sorted List
    【Leetcode】【Easy】Pascal's Triangle II
    【Leetcode】【Easy】Pascal's Triangle
    【Leetcode】【Easy】Binary Tree Level Order Traversal II
    【Leetcode】【Easy】Binary Tree Level Order Traversal
    【Leetcode】【Easy】Maximum Depth of Binary Tree
    【Leetcode】【Easy】Minimum Depth of Binary Tree
    【Leetcode】【Easy】Balanced Binary Tree
    【Leetcode】【Easy】Symmetric Tree
    如何使用Action.Invoke()触发一个Storyboard
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12753343.html
Copyright © 2011-2022 走看看