CN112333529B - 直播流加载方法及其装置、设备、介质 - Google Patents

直播流加载方法及其装置、设备、介质 Download PDF

Info

Publication number
CN112333529B
CN112333529B CN202011203058.8A CN202011203058A CN112333529B CN 112333529 B CN112333529 B CN 112333529B CN 202011203058 A CN202011203058 A CN 202011203058A CN 112333529 B CN112333529 B CN 112333529B
Authority
CN
China
Prior art keywords
target live
live stream
connection
stream
main connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011203058.8A
Other languages
English (en)
Other versions
CN112333529A (zh
Inventor
肖鸿亮
刘天航
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huaduo Network Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN202011203058.8A priority Critical patent/CN112333529B/zh
Publication of CN112333529A publication Critical patent/CN112333529A/zh
Application granted granted Critical
Publication of CN112333529B publication Critical patent/CN112333529B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了直播流加载方法、装置、电子设备及介质,所述方法包括如下步骤:调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;断开主连接以释放经其获取的目标直播流所占用的内存空间;将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。本申请通过切换连接并行获取流媒体的方式,解决了部分浏览器中因接口功能受限而无法释放获取的流媒体占用的内存的问题,防止因终端设备内存堆积,造成终端设备卡顿或宕机等故障出现。

Description

直播流加载方法及其装置、设备、介质
技术领域
本申请属于互联网技术领域,具体涉及一种直播流加载方法,还涉及与前述方法相应的装置、电子设备以及非易失性存储介质。
背景技术
随着计算机技术的迭代更新,越来越多的过时且低效的计算机技术被新型的计算机技术所替换,但不少的根据以往的计算机技术所研发的数据格式仍旧被大量互联网公司所沿用,以满足互联网公司所开发的应用程序仍能够在网络带宽较低的终端设备中流畅传输数据。
直播平台为了满足网络带宽较低的观众用户观看网络直播的需求,大部分的网络直播的直播流所使用的格式包含Flv直播流格式,虽然较为过时,但因Flv格式的直播流文件大小极低,加载速度极快,使得观看网络直播时所需的网络带宽较低。
但如今,部分浏览器由于接口的功能受限,导致在使用HTML5协议规范的页面中播放显示Flv格式的直播流的故障率较高,因此,大部分的直播平台通过使用Flash页面插件来播放显示Flv格式的直播流以解决部分浏览器的问题,虽然大部分的网络直播应用程序可通过使用Flash插件,使Flv格式的直播流能在Internet Explorer 11浏览器的页面中播放显示,鉴于flash逐渐被淘汰,越来越多的浏览器不再对其提供支持,未来直播平台将越来越难以依赖IE11之类的浏览器播放显示Flv格式的直播流。
另一方面,IE11提供了ms-stream接口用于处理流式数据,虽然理论上开发人员可通过ms-stream接口处理Flv格式的直播流,将其在Internet Explorer11浏览器的页面中播放显示,但因ms-stream接口的功能受限,通过ms-stream接口持续处理Flv格式的直播流的页面将无法及时释放内存,造成终端设备的内存占用溢出,导致终端设备出现卡顿或宕机的问题。
针对以上部分浏览器因接口功能不足导致播放显示Flv格式的直播流所普遍面临的问题,亟待提供一些有效的解决方案。
发明内容
鉴于现有技术所存在的不足,本申请的目的,旨在提供一种直播流加载方法及其相应的网络直播控制装置、电子设备、非易失性存储介质。
为满足本申请的目的,本申请采用如下技术方法:
适应于本申请的目的而提供一种直播流加载方法,包括如下步骤:
调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;
在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;
断开主连接以释放经其获取的目标直播流所占用的内存空间;
将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。
进一步的实施例中,在备用连接成为主连接之后,循环执行本方法各步骤中顺序第二至第四步骤以在所述页面插件中持续播放所述目标直播流。
进一步的实施例中,先于主连接预期断开时间提前一定的第一预设时长/在主连接获取的目标直播流数据量达到第一预设大小后,开始执行调用所述流处理接口创建备用连接,获取所述目标直播流的步骤。
较佳的实施例中,在主连接存续经过第二预设时长/在主连接获取的目标直播流数据量达到第二预设大小后,开始执行断开该主连接以释放经其获取的目标直播流所占用的内存空间的步骤。
进一步的实施例中,将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行无缝衔接,输出至所述页面插件中播放的步骤包括如下具体步骤:
确定通过主连接获取的目标直播流的最后一帧图像的时间戳;
调用通过备用连接获取的目标直播流在所述时间戳之后的直播流数据;
将所述直播流数据输出至所述页面插件中播放显示。
较佳的实施例中,所述流处理接口为加载所述页面的浏览器自带的功能接口,其适于依据目标直播流的访问地址创建长链接获取相应的目标直播流,且在其长链接被断开后,自动释放所述目标直播流所占用的内存空间。
较佳的实施例中,所述浏览器为IE11版本,所述功能接口为该浏览器提供的ms-stream接口,所述目标直播流为flv格式,所述页面为符合HTML5协议规范的页面。
适应于本申请的另一目的而提供一种直播流加载装置,包括:
播放启动单元,用于调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;
并行获取模块,用于在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;
断开连接模块,用于断开主连接以释放经其获取的目标直播流所占用的内存空间;
衔接切换模块,用于将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。
适应于本申请的又一目的而提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行所述的直播流加载方法。
适应于本申请的再一目的而提供一种非易失性存储介质,其存储用依据所述的网页测试方法所述实现的计算机程序,该计算机程序被计算机调用时,执行该方法所包括的步骤。
相对于现有技术,本申请的优势如下:
首先,本申请为了解决因流处理接口功能所限而无法释放由直播过程中获取的目标直播流所占用的内存空间的问题,一方面调用流处理接口创建主连接获取目标直播流进行播放,适时断开主连接来释放该主连接获取的目标直播流所占用的内存空间;另一方面,在主连接断开之前,通过调用同一流处理接口创建备用连接,由所述备用连接在主连接断开之前并行获取所述目标直播流,在主连接断开之后,将该备用连接获取的目标直播流与主连接获取的目标直播流进行无缝衔接,输出至页面插件中进行播放显示,使备用连接成为主连接。由此,通过两个连接交替获取同一目标直播流,不仅解决了直播流内存空间占用的问题,利用受限的流处理接口顺利实现目标直播流的持续播放显示,还可以借助无疑衔接技术防止因主连接断开造成直播画面出现跳帧或卡顿等影响观众观看直播的现象。
进而,在完成所述无缝衔接后,备用连接将成为主连接,并循环执行切换连接获取目标直播流,以便继续释放该目标直播流所占用的内存空间。通过适用这一原理,解决了部分浏览器中因接口功能受限,其通过调用接口创建的单一连接获取目标直播流而无法释放该目标直播流占用计算机内存空间而导致终端设备卡顿或宕机的问题,针对这一问题为接口功能所限的浏览器提供了一种容灾技术,例如解决了Internet Explorer 11浏览器通过调用ms-stream获取目标直播流的内存占用问题,实现Internet Explorer 11浏览器可在符合HTML5的协议的页面中获取并播放显示Flv格式的直播流。
推而广之,本申请通过使用同一流处理接口实现主连接和备用连接并行交替的机制,实质上给出了一种目标直播流的内存自动释放机制,这一原理本身也具有普遍适应性,可以作为终端设备处的直播应用程序所普遍采用的技术,应用这一技术可以不受浏览器和流处理接口所限,而使得这种直播应用程序可以通过两个数据通信链路获取同一目标直播流,及时释放因直播产生的内存占用,而不必依赖流处理接口和浏览器提供的内存释放功能。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的网络部署架构示意图。
图2为本申请的直播流加载方法的典型实施例的流程示意图。
图3为本申请的直播流加载方法的另一实施例的流程示意图;
图4为本申请的直播流加载装置的典型实施例的原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信***),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位***)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本申请所称服务器80部署在云端,作为一个前端的应用服务器,其可以负责进一步连接起相关数据服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的智能手机81和个人计算机82提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式接入互联网,与云端的服务器80建立数据通信链路,以便运行所述服务器所提供的服务相关的终端应用程序。
本申请所涉及的网页通常被发布到所述的服务器80中,终端设备通过浏览器调用该网页,或者通过运行所述功能相当的应用程序而调用该网页,均可发起对所述网页的访问。对网页的访问将被浏览器(或应用程序,下同)视为一个对于该目标网页的访问请求,由此便向所述服务器80发送请求以获取对应的目标网页,所述服务器80响应该请求后推送目标网页的HTML代码,浏览器对其进行解析执行,最终将目标网页的内容展示到浏览器所在的终端设备81、82的图形用户界面中。
本申请所述的目标直播流,一般是指通过主播用户端发送至相应的服务器中的流媒体文件,其可被观众用户端获取并播放显示在相应的页面中。观众用户端通过相应的访问地址从服务器中持续获取所述目标直播流进行播放显示以进入网络直播场景。
所述的网络直播,或称网络视频直播,是指一种基于前述的网络部署架构所实现的一种视频直播网络服务,其可以是以视频会议***、网络聊天室***、教育培训***等等不同形式呈现,以满足各种不同应用场景。
本申请的直播流加载方法适用于参与网络视频直播的播控端及观众端执行,被编程内置于网页内嵌或者独立的应用程序中,在所述的终端设备中安装运行,便于实现人机交互。
本申请涉及的网页中的部分功能逻辑可能采用Javascript之类的脚本语言来编写,这些功能逻辑在目标网页被加载的过程中,随着浏览器的解析而运行。通过这些功能逻辑的运行,可以协助网页实现更为丰富的程序功能。
本申请对于HTML5协议的相关内容的引用,仅为示例性说明。本领域技术人员应当知晓,任何与此相当的已知技术手段,均可被替换使用。其中部分代码、标签随着HTML语言版本的发展,也可能被适应性修改、扩展、丰富,而只要这些变化能够满足本申请的需求,也应当将其替换应用理解为不超脱本申请的创造精神所涵盖的范围。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请的一种直播流加载方法,被编程实现基于网页的程序,通过浏览器调用运行,或者将其集成为应用程序(APP)进行运行,运行于个人计算机或智能手机之类的终端设备中。请参阅图2,该方法的典型实施例包括如下步骤:
步骤S11,调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放:
当观众用户进入直播间后,浏览器将调用流处理接口创建主连接,以便从服务器中获取主播用户的目标直播流,并将所述目标直播流输出至页面中的播放插件中播放显示。
所述的流处理接口,是指加载所述页面的浏览器自带的功能接口,适用于依据目标直播流的访问地址创建长链接获取相应的目标直播流,例如,在Internet Explorer 11浏览器中,所述流处理接口一般是指ms-stream,浏览器通过调用ms-stream由其依据目标直播流的访问地址创建所述主连接,以便通过该主连接从访问地址指定的服务器(媒体服务器)中获取主播用户的格式为Flv的目标直播流并输出至页面插件中播放显示。
所述的访问地址,一般是由服务器发送至进入直播间的观众用户端中,或者是指用户端进入直播间的所访问的网址。观众用户依据所述访问地址调用流处理接口创建主链接获取所述目标直播流。
所述的目标直播流,是由直播间的主播用户的终端设备(播控端)相应硬件所生成的流媒体文件,例如主播用户终端设备的摄像头等其他可进行生成视频的硬件生成所述直播流,所述目标直播流以流媒体文件的格式发送至服务器,以便于观众用户(观众端)依据访问地址创建主链接从服务器中获取所述目标直播流。
所述目标直播流的流媒体格式由播控端或服务器所决定,一般流媒体的格式包含WMV格式、Rmvb格式或Flv格式。因Flv格式的文件大小较小且加载速度较快,直播平台更倾向于使用Flv格式对流媒体文件进行封装,因此,在本申请的业务场景中,所处理的对象特指flv格式的流媒体文件。当因Internet Explorer 11浏览器调用ms-stream作为流处理接口在由HTML5协议规范的页面中处理Flv格式的流媒体时无法释放内存,本方法将通过切换连接的方式解决无法释放内存的问题。
所述的主连接,是依据访问地址调用所述流处理接口创建的连接,以便用户通过所述主连接从服务器中获取目标直播流。主连接本质上是一种长链接,其将在其使用达到一定条件后被断开,然后由同一接口创建的其他备用连接切换身份成为新的主连接。
所述的页面插件,是指用于播放显示目标直播流的播放插件,其可供HTML5调用以嵌入所述的页面中,用于播放本申请所述的flv格式的流媒体文件。从访问地址所指向的服务器所获取的目标直播流被输入至该页面插件中播放显示。
步骤S12,在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流:
因受所述流处理接口的功能的限制,在所述主连接存续的过程中无法释放因下载目标直播流所占用的内存,如需释放所述的直播流,需要先断开相应的主连接,以释放因目标直播流所占用的内存。
为了避免因主连接的断开导致目标直播流播放终止,在断开主连接之前,通过调用同一流处理接口创建备用连接,由该备用连接与主连接同步,并行获取目标直播流,由此,即使主连接被断开,备用连接依然维持着对所述目标直播流的下载,可以避免浏览器断开主连接后,直播间无法继续进行直播。
所述备用连接在创建完成后,便从服务器中获取的目标直播流,由于其先于主连接被断开便开始获取所述目标直播流,因此,主连接与备用连接分别获取的目标直播流的流媒体文件中包含有重复的数据,只要将两者进行无缝衔接,便可实现页面插件上的直播内容的平滑过渡。
可以按照以下不同具体实施方式来决定何时创建备用连接:
一种实施例中,监控主连接与服务器连接的时长,当时长大于等于第一预设时长后,便调用所述流处理接口创建备用连接,开始获取所述目标直播流,以便主连接与该备用连接并行获取所述目标直播流,后续将主连接获取的目标直播流与备用连接的目标直播流进行无法衔接。
另一种实施例中,监控主连接从服务器获取目标直播流的数据量,当数据量大于等于第一预设大小后,将触发浏览器调用所述流处理接口创建备用连接,获取所述目标直播流,以便主连接与该备用连接并行获取所述目标直播流,后续将主连接获取的目标直播流与备用连接的目标直播流进行无法衔接。
再一种实施例中,可结合上述两种实施例,将所述第一预设时长及所述第一预设大小同时作为是否创建所述备用连接的判断条件,提高容灾强度,只要监控到主连接达到其中一个判断条件,浏览器将调用所述流处理接口创建备用连接。
需要注意的是,所述第一预设时长及第一预设大小用于在断开主连接之前触发浏览器调用流处理接口创建所述备用连接,开发人员在设置时需要注意,以便所述备用连接获取的目标直播流与主连接获取的目标直播流进行无缝衔接处理。
步骤S13,断开主连接以释放经其获取的目标直播流所占用的内存空间:
因流处理接口创建的连接并不具备释放已输出至页面插件中播放的目标直播流所占的内存空间的功能,导致终端设备的内存堆积,因此本申请通过断开主连接,释放该主连接获取的目标直播流所占用的内存空间,并将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行无缝衔接,由此,主连接导致的内存堆积被释放,而用户观看的直播内容又不受影响。
可以按照以下不同具体实施方式来决定何时断开主连接:
一种实施例中,监控主连接与服务器连接的时长,当时长大于等于第二预设时长后,将触发浏览器断开该主连接,以便释放该主连接获取的已在页面中播放的目标直播流所占用的内存空间,防止造成内存堆积。
另一种实施例中,监控主连接从服务器获取目标直播流的数据量,当数据量大于等于第二预设大小后,将触发浏览器断开该主连接,以便释放该主连接获取的已在页面中播放的目标直播流所占用的内存空间,防止造成内存堆积。
再一种实施例中,可结合上述两种实施例,将所述第二预设时长及所述第二预设大小同时作为是否断开主连接的判断条件,提高容灾强度,只要监控到主连接达到其中一个判断条件,浏览器将断开主连接以释放目标直播流占用的内存空间。
开发人员可根据直播应用场景灵活设置所述第二预设时长及所述第二预设大小,作为触发浏览器断开主连接的条件,以便释放主连接获取的目标直播流所占用的内存空间。
步骤S14,将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接:
浏览器在断开主连接之后,将启用备用连接替代该主连接,以便浏览器通过该备用连接从服务器中获取目标直播流。为了不影响观众用户观看直播,浏览器并将通过该备用连接获取的目标直播流与通过已断开的主连接获取的目标直播流进行无缝衔接,并将已通过无缝衔接处理的目标直播流输出至页面中的页面插件进行播放显示,使得页面插件播放目标直播流的过程中不出现黑屏、跳帧等影响观众用户体验的现象。
请参考图3,所述无缝衔接的执行过程包括如下具体步骤:
步骤S141,确定通过主连接获取的目标直播流的最后一帧图像的时间戳:
根据主连接断开的时间从主连接获取的目标直播流的直播流数据中确定该目标直播流的最后一帧图像的时间戳,以便后续确定备用连接获取的目标直播流中需要输出至在页面插件中的起始直播流数据。
步骤S142,调用通过备用连接获取的目标直播流在所述时间戳之后的直播流数据:
在确定了所述时间戳后,将根据该时间戳确定通过备用连接获取的目标直播流在所述时间戳之后的起始直播流数据,以便将该直播流数据输出至页面插件中进行播放,对于起始直播流数据之前的数据则直接丢弃。
步骤S143,将所述直播流数据输出至所述页面插件中播放显示:
在通过所述时间戳调用所述直播流数据后,将该直播流数据输出至所述页面插件中播放显示,以实现通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行无缝衔接,防止因切换连接获取目标直播流而导致该目标直播流页面插件中播放显示出现跳帧或黑屏的现象,提升观众用户观看直播的体验。
完成了将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行无缝衔接后,所述备用连接将成为主连接,浏览器将循环执行步骤S12到步骤S14,通过循环交替切换连接获取目标直播流来维持目标直播流的连续性,通过断开释放主连接获取的目标直播流所占用的内存空间,再通过无缝衔接的方式处理前一连接获取的目标直播流及后一连接获取的目标直播流之间的关系,最终确保目标直播流在页面插件中的流畅连续播放显示。
本方法的实施的各种实施例,并不仅限于解决Internet Explorer 11浏览器调用ms-stream获取的直播流而无法释放该直播流占用的内存空间的问题,不依赖于应用环境,为部分存在该问题的浏览器提供了一种容灾技术,以解决部分浏览器中因接口功能所限而无法释放流媒体所占用的内存空间所造成的内存堆积的问题,防止运行此类浏览器的终端设备出现卡顿或宕机的现象。
进一步的,可以通过将上述的直播流加载方法中的各个实施例进行功能化,构造出本申请的一种直播流加载装置,按照这一思路,请参阅图4,其中的一个典型实施例中,该装置包括:
播放启动单元11,用于调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;
并行获取模块12,用于在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;
断开连接模块13,用于断开主连接以释放经其获取的目标直播流所占用的内存空间;
衔接切换模块14,用于将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。
进一步的,为了便于本申请的执行,提供一种电子设备,做为本申请所部署的服务器,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中计算机程序以执行如前述的一种直播流加载方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其中存储有依据所述的直播流加载方法的各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本方法通过切换连接获取流媒体的方式,提供了一种容灾技术,解决了部分浏览器中因接口功能受限而无法释放获取的流媒体占用的内存问题,防止因终端设备内存堆积,造成终端设备卡顿或宕机等故障出现。
本技术领域技术人员可以理解,本申请包涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种直播流加载方法,其特征在于,包括如下步骤:
调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;
在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;
断开主连接以释放经其获取的目标直播流所占用的内存空间;
将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。
2.如权利要求1所述的方法,其特征在于:在备用连接成为主连接之后,循环执行本方法各步骤中顺序第二至第四步骤以在所述页面插件中持续播放所述目标直播流。
3.如权利要求1或2所述的方法,其特征在于:先于主连接预期断开时间提前一定的第一预设时长/在主连接获取的目标直播流数据量达到第一预设大小后,开始执行调用所述流处理接口创建备用连接,获取所述目标直播流的步骤。
4.如权利要求1或2所述的方法,其特征在于,在主连接存续经过第二预设时长/在主连接获取的目标直播流数据量达到第二预设大小后,开始执行断开该主连接以释放经其获取的目标直播流所占用的内存空间的步骤。
5.如权利要求1或2所述的方法,其特征在于,将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行无缝衔接,输出至所述页面插件中播放的步骤包括如下具体步骤:
确定通过主连接获取的目标直播流的最后一帧图像的时间戳;
调用通过备用连接获取的目标直播流在所述时间戳之后的直播流数据;
将所述直播流数据输出至所述页面插件中播放显示。
6.如权利要求1或2所述的方法,其特征在于:所述流处理接口为加载所述页面的浏览器自带的功能接口,其适于依据目标直播流的访问地址创建长链接获取相应的目标直播流,且在其长链接被断开后,自动释放所述目标直播流所占用的内存空间。
7.根据权利要求6所述的方法,其特征在于,所述浏览器为IE11版本,所述功能接口为该浏览器提供的ms-stream接口,所述目标直播流为flv格式,所述页面为符合HTML5协议规范的页面。
8.一种网页测试装置,其特征在于,包括:
播放启动单元,用于调用流处理接口创建主连接,获取目标直播流,将目标直播流输出至页面插件中播放;
并行获取模块,用于在断开主连接之前,调用所述流处理接口创建备用连接,获取所述目标直播流;
断开连接模块,用于断开主连接以释放经其获取的目标直播流所占用的内存空间;
衔接切换模块,用于将通过备用连接获取的目标直播流与通过主连接获取的目标直播流进行衔接,输出至所述页面插件中播放,使备用连接成为主连接。
9.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任一项所述的直播流加载方法。
10.一种非易失性存储介质,其特征在于,其存储有依据权利要求1至7中任一项所述的直播流加载方法所实现的计算机程序,该计算机程序被计算机调用时,执行该方法所包括的步骤。
CN202011203058.8A 2020-11-02 2020-11-02 直播流加载方法及其装置、设备、介质 Active CN112333529B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011203058.8A CN112333529B (zh) 2020-11-02 2020-11-02 直播流加载方法及其装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011203058.8A CN112333529B (zh) 2020-11-02 2020-11-02 直播流加载方法及其装置、设备、介质

Publications (2)

Publication Number Publication Date
CN112333529A CN112333529A (zh) 2021-02-05
CN112333529B true CN112333529B (zh) 2022-08-05

Family

ID=74324147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011203058.8A Active CN112333529B (zh) 2020-11-02 2020-11-02 直播流加载方法及其装置、设备、介质

Country Status (1)

Country Link
CN (1) CN112333529B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507646B (zh) * 2021-07-01 2023-07-18 Vidaa(荷兰)国际控股有限公司 一种显示设备及浏览器多标签页媒资播放方法
CN113867996A (zh) * 2021-08-18 2021-12-31 广州方硅信息技术有限公司 数据容灾的处理方法、服务器、直播***及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019019370A1 (zh) * 2017-07-24 2019-01-31 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端
CN110110262A (zh) * 2019-05-07 2019-08-09 海信电子科技(深圳)有限公司 浏览器内存管理方法、装置和设备
CN110300328A (zh) * 2018-03-21 2019-10-01 腾讯科技(深圳)有限公司 一种视频播放控制方法、装置及可读存储介质
CN110347952A (zh) * 2019-07-18 2019-10-18 武汉斗鱼网络科技有限公司 一种打开直播间页面的方法、装置及计算机设备
CN111124668A (zh) * 2019-11-28 2020-05-08 宇龙计算机通信科技(深圳)有限公司 内存释放方法、装置、存储介质及终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019019370A1 (zh) * 2017-07-24 2019-01-31 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端
CN110300328A (zh) * 2018-03-21 2019-10-01 腾讯科技(深圳)有限公司 一种视频播放控制方法、装置及可读存储介质
CN110110262A (zh) * 2019-05-07 2019-08-09 海信电子科技(深圳)有限公司 浏览器内存管理方法、装置和设备
CN110347952A (zh) * 2019-07-18 2019-10-18 武汉斗鱼网络科技有限公司 一种打开直播间页面的方法、装置及计算机设备
CN111124668A (zh) * 2019-11-28 2020-05-08 宇龙计算机通信科技(深圳)有限公司 内存释放方法、装置、存储介质及终端

Also Published As

Publication number Publication date
CN112333529A (zh) 2021-02-05

Similar Documents

Publication Publication Date Title
CN111901674B (zh) 一种视频播放控制方法及装置
CN111711833B (zh) 直播视频流推送控制方法、装置、设备及存储介质
CN111510780B (zh) 视频直播控制、桥接、流控、播控方法及客户端
CN113497945B (zh) 基于云手机的直播和配置方法以及相关装置和***
CN112333529B (zh) 直播流加载方法及其装置、设备、介质
CN108566561B (zh) 视频播放方法、装置及存储介质
CN109803151B (zh) 多媒体数据流切换方法、装置、存储介质及电子装置
CN104539977A (zh) 直播预览方法及装置
CN110177300B (zh) 程序运行状态的监控方法、装置、电子设备和存储介质
US20220256205A1 (en) Video processing method and apparatus, computer device, and storage medium
WO2019071680A1 (zh) 一种插件加载的方法和装置
CN112312154B (zh) 网络直播控制、执行方法及其相应的装置、设备、介质
WO2019071678A1 (zh) 一种直播的方法和装置
CN106341698B (zh) 视频直播处理方法和装置以及存储介质和终端设备
CN113824979A (zh) 直播间的推荐方法、装置及计算机设备
US11792238B2 (en) Method, system, and non-transitory computer-readable record medium for sharing content during VoIP-based call
CN113282548A (zh) 文件保存方法、装置、电子设备以及存储介质
KR101833942B1 (ko) 실시간 영상 합성을 위한 트랜스코더
CN110996118A (zh) 一种封面合成方法、装置、服务器以及存储介质
CN113542765B (zh) 一种媒体数据跳变续播方法及显示设备
CN113727177B (zh) 投屏资源播放方法及其装置、设备与介质
CN111416994B (zh) 视频流和跟踪信息的同步呈现的方法、装置及电子设备
CN113730923A (zh) 基于游戏直播的主播输入操作分享与显示方法、及设备
CN114679593B (zh) 直播转码处理方法、装置及***
CN114363665B (zh) 多业务码流推送方法、***、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant