CN111954014A - 一种直播推流方法、装置、存储介质及设备 - Google Patents

一种直播推流方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN111954014A
CN111954014A CN202010811787.5A CN202010811787A CN111954014A CN 111954014 A CN111954014 A CN 111954014A CN 202010811787 A CN202010811787 A CN 202010811787A CN 111954014 A CN111954014 A CN 111954014A
Authority
CN
China
Prior art keywords
rtmp
type
parsing
packet
current
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.)
Granted
Application number
CN202010811787.5A
Other languages
English (en)
Other versions
CN111954014B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010811787.5A priority Critical patent/CN111954014B/zh
Publication of CN111954014A publication Critical patent/CN111954014A/zh
Priority to PCT/CN2021/098298 priority patent/WO2022033140A1/zh
Application granted granted Critical
Publication of CN111954014B publication Critical patent/CN111954014B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种直播推流方法、装置、存储介质及设备,能够避免直播推流过程中出现大量兼容性错误,确保直播推流成功并提升用户体验,该方法包括:当获取到的当前RTMP数据包为第3类型数据块时,先按照第一预设协议规范,解析当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包,然后,再按照第一预设协议规范对这N个RTMP数据包进行解析,得到N个解析结果;进而,当这N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包;当这N个解析结果均满足预设解析条件时,仍按照第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。

Description

一种直播推流方法、装置、存储介质及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种直播推流方法、装置、存储介质及设备。
背景技术
随着互联网技术的迅速发展,网络直播越来越普及,而奥多比系统(Adobe)公司的实时消息传输协议(Real Time Messaging Protocol,简称RTMP)作为一种流媒体传输协议,因其不高的延迟、几乎开源及多终端的支持等优点,已在当前直播届被广泛使用,几乎成为了源端直播推流的唯一标准。
然而,Adobe官方公布的RTMP协议规范文档自身存在两个版本:一个版本是2009年发布的草案(draft),另一个版本是2012年发布的1.0版本。这两个版本关于RTMP协议中第3类型数据块(type 3chunk)的格式定义存在冲突,该冲突指的是在type 3chunk中是否包含扩展时间戳,若遵循其中一个版本文档构造数据流的规范,则在解析遵循另一个版本构造的数据流中可能出现解析失败的情况。从而导致直播推流过程中出现大量兼容性错误,造成直播推流失败。
对此,现有解决方案是将推流的数据流中所有第3类型数据块均默认按照不包含扩展时间戳进行解析,当出现推流异常时,在定位原因后,通过人工修改推流配置,将推流异常处的数据流按照包含扩展时间戳进行解析,但这种处理方式不仅浪费了大量人力成本,而且会导致推流时间延长,影响用户体验。因此,如何避免直播推流过程中出现大量兼容性错误,以保证直播推流成功并提升用户体验是目前亟待解决的技术问题。
发明内容
本申请实施例的主要目的在于提供一种直播推流方法、装置、存储介质及设备,能够避免直播推流过程中出现大量兼容性错误,确保直播推流成功并提升了用户体验。
本申请实施例提供了一种直播推流方法,包括:
获取直播推流的实时消息传输协议RTMP数据流;
当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析所述当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包;其中,N为不小于1的正整数;
按照所述第一预设协议规范,解析所述N个RTMP数据包,得到N个解析结果;
当所述N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析所述当前RTMP数据包以及之后获取的所有RTMP数据包;
当所述N个解析结果均满足预设解析条件时,按照所述第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包;
一种可能的实现方式中,所述第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;
或者,所述第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
一种可能的实现方式中,所述解析结果包括包头header解析结果;所述预设解析条件为header解析结果表明了所述RTMP数据流的类型;所述RTMP数据流的类型包括音频流和视频流。
一种可能的实现方式中,当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,所述方法还包括:
获取所述当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值;
将所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果;
当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析;
当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,执行所述按照第一预设协议规范,解析所述当前RTMP数据包及其后续步骤。
一种可能的实现方式中,所述预设字节为所述当前RTMP数据包的数据包头部之后的4个字节。
本申请实施例还提供了一种直播推流装置,包括
第一获取单元,用于获取直播推流的实时消息传输协议RTMP数据流;
第一解析单元,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析所述当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包;其中,N为不小于1的正整数;
第二解析单元,用于按照所述第一预设协议规范,解析所述N个RTMP数据包,得到N个解析结果;
第三解析单元,用于当所述N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析所述当前RTMP数据包以及之后获取的所有RTMP数据包;
第四解析单元,用于当所述N个解析结果均满足预设解析条件时,按照所述第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
一种可能的实现方式中,所述第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;
或者,所述第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
一种可能的实现方式中,所述解析结果包括包头header解析结果;所述预设解析条件为header解析结果表明了所述RTMP数据流的类型;所述RTMP数据流的类型包括音频流和视频流。
一种可能的实现方式中,所述装置还包括:
第二获取单元,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,获取所述当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值;
对比单元,用于将所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果;
第五解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析;
第六解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,调用并执行所述第一解析单元。
一种可能的实现方式中,所述预设字节为所述当前RTMP数据包的数据包头部之后的4个字节。
本申请实施例还提供了一种直播推流设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述直播推流方法中的任意一种实现方式。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述直播推流方法中的任意一种实现方式。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述直播推流方法中的任意一种实现方式。
本申请实施例提供的一种直播推流方法、装置、存储介质及设备,当获取到直播推流的RTMP数据流的当前RTMP数据包为第3类型数据块时,先按照第一预设协议规范,解析当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包,然后,再按照第一预设协议规范对这N个RTMP数据包进行解析,得到N个解析结果;进一步的,当这N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包;当这N个解析结果均满足预设解析条件时,仍按照第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
可见,本申请实施例是通过对直播推流中的第3类型数据块及其后续N个RTMP数据包进行预解析,以判断出第3类型数据块是否包含扩展时间戳,由此来确定RTMP数据流遵循的RTMP协议规范,达到正确识别并兼容两种协议规范的数据流的效果,相比于现有的将所有第3类型数据块均默认按照不包含扩展时间戳进行解析的方法,解析的准确率更高,并且,通过这种自动解析的方式也节约了人力成本,不会造成直播推流时间的延迟,从而能够避免直播推流过程中出现大量兼容性错误,确保直播推流成功并提升用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的网络直播的场景示例图;
图2为本申请实施例提供的一种直播推流方法的流程示意图;
图3为本申请实施例提供的一种直播推流装置的组成示意图。
具体实施方式
随着网络直播的普及,需要处理的直播数据量也越来越多。在网络直播过程中,如图1所示,对于主播来说,是通过终端设备101将视频信息或音频信息以rtmp数据包的形式传输到服务器102中,该数据传输过程通常被定义为直播过程中的推流;相应的,对于观看直播的观察者来说,是通过终端设备103从服务器102处获取视频数据或音频数据来进行观看或收听,该数据传输过程通常被定义为直播过程中的拉流。
其中,终端设备101和终端身边103指的是能够安装、运行直播客户端软件的设备,如智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等等。服务器102指的是响应终端设备101和终端身边103的请求并提供数据服务的设备,服务器102可以为一个终端设备提供服务,也可以同时为多个终端设备提供服务。
目前,对于直播推流过程中的rtmp数据包的解析,通常采用的方案是将所有第3类型数据块均默认按照不包含扩展时间戳进行解析,当由于两种不同RTMP协议规范造成兼容性错误,引起推流出现异常时,在定位原因后,会通过人工修改推流配置的方式,将推流异常处的第3类型数据块按照包含扩展时间戳进行解析,但这种处理方式不仅浪费了大量人力成本,而且会导致推流时间延长,影响用户体验。
为解决上述缺陷,本申请实施例提供了一种直播推流方法,当获取到直播推流的RTMP数据流的当前RTMP数据包为第3类型数据块时,先按照第一预设协议规范,解析当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包,其中,N为不小于1的正整数,然后,再按照第一预设协议规范对这N个RTMP数据包进行解析,得到N个解析结果;进一步的,当这N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包;当这N个解析结果均满足预设解析条件时,仍按照第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
可见,本申请实施例是通过对直播推流中的第3类型数据块及其后续N个RTMP数据包进行预解析,以判断出第3类型数据块是否包含扩展时间戳,由此来确定RTMP数据流遵循的RTMP协议规范,达到正确识别并兼容两种协议规范的数据流的效果,相比于现有的将所有第3类型数据块均默认按照不包含扩展时间戳进行解析的方法,解析的准确率更高,并且,通过这种自动解析的方式也节约了人力成本,不会造成直播推流时间的延迟,从而能够避免直播推流过程中出现大量兼容性错误,确保直播推流成功并提升用户体验。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
第一实施例
参见图2,为本实施例提供的一种直播推流方法的流程示意图,该方法包括以下步骤:
S201:获取直播推流的实时消息传输协议RTMP数据流。
在本实施例中,为了确保直播推流成功,首先需要获取直播推流中的RTMP数据流,用以通过后续步骤实现成功解析。该RTMP数据流是以RTMP数据包为单位进行传输的,如图1所示的主播通过终端设备101向服务器102传输的RTMP数据流中包含多个RTMP数据包。
其中,每个RTMP数据包是由包头header和包体body组成,包头header长度可以是4种长度(即12byte(s)、8byte(s)、4byte(s)和1byte(s))中的任意一种,不同类型的header的长度是不同的。RTMP数据包的类型可以分为非第3类型的数据块(即type 0 chunk、type1 chunk、type 2 chunk)和第3类型的数据块(type 3 chunk)。这四种类型数据块中header长度分别为12字节、8字节、4字节和1字节。
S202:当RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包。
需要说明的是,由于在现行的两个版本的RTMP协议规范中,关于RTMP协议中第3类型数据块(type 3 chunk)的格式定义存在冲突,即,在type 3 chunk中可以包含扩展时间戳,也可以不包含扩展时间戳。若遵循其中一个版本文档构造数据流的规范,则在解析遵循另一个版本构造的数据流中可能出现解析失败的情况,从而会导致直播推流过程中出现大量兼容性错误,进而造成直播推流失败。
由此,为了避免直播推流过程中出现大量兼容性错误,确保直播推流成功,在本实施例中,通过步骤S201获取到直播推流的RTMP数据流后,首先判断该RTMP数据流中待解析的当前RTMP数据包是否为第3类型数据块(即type 3 chunk),若是,则按照第一预设协议规范,对其进行解析,同时,获取该数据包之后的N个数据包,用以执行后续步骤S103,。
其中,N为不小于1的正整数,具体取值可根据实际情况和实验结果来确定,本申请实施例对此不进行限定,比如,可以将N取为4等。第一预设协议规范指的是预先设置的第一种现行版本的RTMP协议规范,其中规定了对第3类型数据块(即type 3 chunk)进行解析的方式。相对应的,后续步骤S104中提及的第二预设协议规范指的则是预先设置的第二种现行版本的RTMP协议规范,其中规定了与第一种相反的对第3类型数据块(即type 3 chunk)进行解析的方式。
在本实施例的一种可能的实现方式中,第一预设协议规范指的是按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,则第二预设协议规范指的是按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;或者,第一预设协议规范指的是按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,则第二预设协议规范指的是按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
S203:按照第一预设协议规范,解析N个RTMP数据包,得到N个解析结果。
在本实施例中,通过步骤S202获取到当前RTMP数据包之后的N个RTMP数据包后,进一步可以根据按照第一预设协议规范对这N个RTMP数据包进行解析,得到N个header解析结果;其中,在对每个RTMP数据包解析时分为包头和包体的解析,从而使得这N个header解析结果中包含了这N个RTMP数据包各自对应的N个包头header解析结果。
具体来讲,在获取到N个RTMP数据包后,由于不同类型的数据块中header的长度不同,且每一RTMP数据包都对应一种数据块类型,所以在按照第一预设协议规范对这N个RTMP数据包进行解析时,可以先按照包头header格式对每一RTMP数据包进行包头解析,即,从每一RTMP数据包中分别获取前12字节、8字节、4字节和1字节进行解析,以从中确定出可以表征该RTMP数据包所在数据流的类型的header解析结果,同理,可以得到这N个RTMP数据包对应的N个header解析结果,其中,每一header解析结果均能表明对应RTMP数据包所在数据流所属的数据流类型,即,可以利用每一header解析结果来表明其对应RTMP数据包所在数据流为音频流还是视频流。比如,可以利用每一header解析结果中的某个固定字段的取值,来表示数据流类型,例如,当某一header解析结果中该字段的取值为8时,则表明该header解析结果对应RTMP数据包所在数据流为音频流;当某一header解析结果中该字段的取值为9时,则表明该header解析结果对应RTMP数据包所在数据流为视频流。当某一header解析结果中该字段的取值为其他值(如7)时,则表明该header解析结果出现了异常。
进一步的,可以判断这N个RTMP数据包对应的N个解析结果是否满足预设解析条件,若是,则继续执行后续步骤S205;若否,则继续执行后续步骤S204。
其中,解析结果包括header解析结果,而预设解析条件指的是header解析结果能够表明该其对应RTMP数据包所在数据流的类型。该RTMP数据流的类型包括音频流和视频流。即,若某一解析结果满足预设解析条件,则可以理解为该解析结果包含的header解析结果能够表明其对应RTMP数据包所在数据流是音频流还是视频流。但若某一解析结果不满足预设解析条件,则可以理解为该解析结果包含的header解析结果不能表明其对应RTMP数据包所在数据流是音频流还是视频流。
S204:当N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包。
在本实施例中,在通过步骤S203得到N个RTMP数据包对应的解析结果后,进一步可以逐一判断出这N个解析结果是否满足预设解析条件,当其中存在至少一个解析结果不满足预设解析条件时,即,当这N个解析结果中存在至少一个解析结果包含的header解析结果不能表明其对应RTMP数据包所在数据流是音频流还是视频流时,则表明在对该解析结果对应的RTMP数据包进行包头解析时,出现了异常问题,
进而表明在这个RTMP数据包之前的上一个RTMP数据包中,利用第一预设协议规范对其进行解析的方式是不正确的,造成了后续RTMP数据包包头解析出错。
由此,需要按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包。即,需要按照与第一预设协议规范不同的另一版本的RTMP协议规范中对第3类型数据块(即type 3 chunk)进行解析的方式,重新对当前RTMP数据包以及之后获取的所有RTMP数据包进行解析。
举例说明:假设是按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,对这个RTMP数据包之前的上一个RTMP数据包进行解析的,但是却造成了这个RTMP数据包包头解析出错,这意味着上一个RTMP数据包是包括扩展时间戳的,在对其进行解析时,将扩展时间戳所在的4个字节作为包体(body)中的字节进行解析了,从而遗漏了包体(body)中的最后4个字节,导致在对这个RTMP数据包进行包头解析时,将上一个RTMP数据包中的最后4个字节作为这个RTMP数据包包头中的字节进行解析了,进而造成了这个RTMP数据包的包头解析异常。由此,需要按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,重新对获取到的第一个第3类型数据块对应的RTMP数据包以及之后获取的所有RTMP数据包进行解析。
或者,假设是按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,对这个RTMP数据包之前的上一个RTMP数据包进行解析的,但是却造成了这个RTMP数据包包头解析出错,这意味着上一个RTMP数据包是不包括扩展时间戳的,在对其进行解析时,将这个RTMP数据包包头中的前4个字节作为上一个RTMP数据包的包体(body)中的字节进行解析了,从而使得这个RTMP数据包包头中缺少了前面的4个字节,导致在对这个RTMP数据包进行包头解析时,出现了解析异常的情况。进而,需要按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,重新对获取到的第一个第3类型数据块对应的RTMP数据包以及之后获取的所有RTMP数据包进行解析。
S205:当N个解析结果均满足预设解析条件时,按照第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
在本实施例中,在通过步骤S203得到N个RTMP数据包对应的解析结果后,进一步可以逐一判断出这N个解析结果是否满足预设解析条件,当这N个解析结果均满足预设解析条件时,即,当这N个解析结果包含的header解析结果均能表明各自对应RTMP数据包所在数据流是音频流还是视频流时,则表明对这N个解析结果对应的RTMP数据包进行包头解析时,未出现异常问题,从而表明在这个RTMP数据包之前的上一个RTMP数据包中,按照第一预设协议规范对其进行解析的方式是正确的,未造成后续RTMP数据包包头解析出错,进而可以继续按照第一预设协议规范对获取到的第N个RTMP数据包之后的所有RTMP数据包进行解析。
为便于理解本申请,现将N取为4,并设定第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;以及设定第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,分别对上述步骤S202-S205的实现过程,进行举例说明如下:
(1)举例说明:当N=4,第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范时,则共获取到5个RTMP数据包。
其中,将获取到的当前RTMP数据包(为第3类型数据块)作为第1个RTMP数据包,并按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,对其进行解析,其中,按照包头header格式对后续第2个RTMP数据包、第3个RTMP数据包、第4个RTMP数据包和第5个RTMP数据包分别进行包头解析,得到5个header解析结果,并按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,对第2个RTMP数据包、第3个RTMP数据包、第4个RTMP数据包和第5个RTMP数据包分别进行包体解析。
当这5个header解析结果中存在至少一个header解析结果所属的解析结果不满足预设解析条件时,即,当这5个header解析结果中存在至少一个header解析结果不能表明其RTMP数据流是音频流还是视频流时,则表明该RTMP数据流中的第3类型数据块是包括扩展时间戳的,需要按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,重新解析这5个RTMP数据包,以及按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范对之后获取的所有RTMP数据包进行解析,才能确保直播推流成功。
当这5个header解析结果所属的解析结果均满足预设解析条件时,即,当这5个header解析结果均能表明RTMP数据流是音频流还是视频流时,则表明该RTMP数据流中的第3类型数据块是不包括扩展时间戳的,可以按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,继续进行后续RTMP数据包的解析,以确保直播推流成功。
(2)举例说明:当N=4,第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范时,则共获取到5个RTMP数据包。
其中,将获取到的当前RTMP数据包(为第3类型数据块)作为第1个RTMP数据包,并按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,对其进行解析,其中,按照包头header格式对后续第2个RTMP数据包、第3个RTMP数据包、第4个RTMP数据包和第5个RTMP数据包分别进行包头解析,得到5个header解析结果,并按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,对第2个RTMP数据包、第3个RTMP数据包、第4个RTMP数据包和第5个RTMP数据包分别进行包体解析。
当这5个header解析结果中存在至少一个header解析结果所属的解析结果不满足预设解析条件时,即,当这5个header解析结果中存在至少一个header解析结果不能表明其RTMP数据流是音频流还是视频流时,则表明该RTMP数据流中的第3类型数据块是不包含扩展时间戳的,需要按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,重新解析这5个RTMP数据包,以及按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范对之后获取的所有RTMP数据包进行解析,才能确保直播推流成功。
当这5个header解析结果所属的解析结果均满足预设解析条件时,即,当这5个header解析结果均能表明RTMP数据流是音频流还是视频流时,则表明该RTMP数据流中的第3类型数据块是包括扩展时间戳的,可以按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,继续进行后续RTMP数据包的解析,以确保直播推流成功。
另外,在本申请实施例的一种可能的实现方式中,当RTMP数据流的当前RTMP数据包为第3类型数据块时,本实施例还可以通过执行下述步骤A-D,以提高直播推流中RTMP数据流的处理效率。
步骤A:获取当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值。
在本实现方式中,预设字节指的是当前RTMP数据包的数据包头部header之后的4个字节,这是因为协议规范中规定了若type 3 chunk中包含扩展时间戳,则其位置应该是位于包头header和包体body之间,也就是说,如果是按照第3类型数据块包括扩展时间戳的格式构造的RTMP数据流,则type 3 chunk中在header之后跟随的4个字节即为扩展时间戳;而对于按照第3类型数据块不包括扩展时间戳的格式构造的RTMP数据流,则type 3 chunk中在header之后跟随的字节均为包体body中的字节。
基于此,可以在确定出当前RTMP数据包为第3类型数据块时,可以获取当前RTMP数据包的数据包头部header之后的4个字节,并按照扩展时间戳的格式解析这四个字节,得出对应的数值。
步骤B:将该数值与当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果。
将通过步骤A得到的数值与当前RTMP数据包之前的非第3类型数据块(如type 0chunk)的扩展时间戳对应的数值进行对比,得到对比结果。
步骤C:当对比结果表明该数值与当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析。
当通过步骤B得到的对比结果表明该数值与当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,则说明该直播推流的RTMP数据流中的第3类型数据块是包含扩展时间戳的,即,通过步骤A获取到的当前RTMP数据包的数据包头部header之后的4个字节就是表示该扩展时间戳的,而这4个字节之后的字节则表示该RTMP数据包的包体body,进而可以按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析,以确保直播推流成功并提高直播推流中RTMP数据流的处理效率。
步骤D:当对比结果表明该数值与当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,执行按照第一预设协议规范,解析当前RTMP数据包及其后续步骤。
当通过步骤B得到的对比结果表明该数值与当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,则说明该直播推流的RTMP数据流中的第3类型数据块是不包含扩展时间戳的,即,通过步骤A获取到的当前RTMP数据包的数据包头部header之后的4个字节是该RTMP数据包的包体body中的字节,而不是表示该扩展时间戳的,或者是当前RTMP数据包中包含了错误的扩展时间戳,在此情况下,需要执行上述步骤S202中按照第一预设协议规范,解析当前RTMP数据包及其后续步骤,以确保直播推流成功并提高直播推流中RTMP数据流的处理效率。具体实现过程可参见上述步骤S202-S205的相关介绍,在此不再赘述。
综上,本实施例提供的直播推流方法,当获取到直播推流的RTMP数据流的当前RTMP数据包为第3类型数据块时,先按照第一预设协议规范,解析当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包,其中,N为不小于1的正整数;然后,再按照第一预设协议规范对这N个RTMP数据包进行解析,得到N个解析结果;进一步的,当这N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析当前RTMP数据包以及之后获取的所有RTMP数据包;当这N个解析结果均满足预设解析条件时,仍按照第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
可见,本申请实施例是通过对直播推流中的第3类型数据块及其后续N个RTMP数据包进行预解析,以判断出第3类型数据块是否包含扩展时间戳,由此来确定RTMP数据流遵循的RTMP协议规范,达到正确识别并兼容两种协议规范的数据流的效果,相比于现有的将所有第3类型数据块均默认按照不包含扩展时间戳进行解析的方法,解析的准确率更高,并且,通过这种自动解析的方式也节约了人力成本,不会造成直播推流时间的延迟,从而能够避免直播推流过程中出现大量兼容性错误,确保直播推流成功并提升用户体验。
第二实施例
本实施例将对一种直播推流装置进行介绍,相关内容请参见上述方法实施例。
参见图3,为本实施例提供的一种直播推流装置的组成示意图,该装置300包括:
第一获取单元301,用于获取直播推流的实时消息传输协议RTMP数据流;
第一解析单元302,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析所述当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包;其中,N为不小于1的正整数;
第二解析单元303,用于按照所述第一预设协议规范,解析所述N个RTMP数据包,得到N个解析结果;
第三解析单元304,用于当所述N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析所述当前RTMP数据包以及之后获取的所有RTMP数据包;
第四解析单元305,用于当所述N个解析结果均满足预设解析条件时,按照所述第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
在本实施例的一种实现方式中,所述第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;
或者,所述第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
在本实施例的一种实现方式中,所述解析结果包括包头header解析结果;所述预设解析条件为header解析结果表明了所述RTMP数据流的类型;所述RTMP数据流的类型包括音频流和视频流。
在本实施例的一种实现方式中,所述装置还包括:
第二获取单元,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,获取所述当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值;
对比单元,用于将所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果;
第五解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析;
第六解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,调用并执行所述第一解析单元302。
在本实施例的一种实现方式中,所述预设字节为所述当前RTMP数据包的数据包头部之后的4个字节。
进一步地,本申请实施例还提供了一种直播推流设备,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述直播推流方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述直播推流方法的任一种实现方法。
进一步地,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行上述直播推流方法的任一种实现方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种直播推流方法,其特征在于,包括:
获取直播推流的实时消息传输协议RTMP数据流;
当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析所述当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包;其中,N为不小于1的正整数;
按照所述第一预设协议规范,解析所述N个RTMP数据包,得到N个解析结果;
当所述N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析所述当前RTMP数据包以及之后获取的所有RTMP数据包;
当所述N个解析结果均满足预设解析条件时,按照所述第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
2.根据权利要求1所述的方法,其特征在于,所述第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;
或者,所述第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
3.根据权利要求1或2所述的方法,其特征在于,所述解析结果包括包头header解析结果;所述预设解析条件为header解析结果表明了所述RTMP数据流的类型;所述RTMP数据流的类型包括音频流和视频流。
4.根据权利要求1所述的方法,其特征在于,当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,所述方法还包括:
获取所述当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值;
将所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果;
当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析;
当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,执行所述按照第一预设协议规范,解析所述当前RTMP数据包及其后续步骤。
5.根据权利要求4所述的方法,其特征在于,所述预设字节为所述当前RTMP数据包的数据包头部之后的4个字节。
6.一种直播推流装置,其特征在于,包括:
第一获取单元,用于获取直播推流的实时消息传输协议RTMP数据流;
第一解析单元,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,按照第一预设协议规范,解析所述当前RTMP数据包,并获取当前RTMP数据包之后的N个RTMP数据包;其中,N为不小于1的正整数;
第二解析单元,用于按照所述第一预设协议规范,解析所述N个RTMP数据包,得到N个解析结果;
第三解析单元,用于当所述N个解析结果中存在不满足预设解析条件的解析结果时,按照第二预设协议规范,重新解析所述当前RTMP数据包以及之后获取的所有RTMP数据包;
第四解析单元,用于当所述N个解析结果均满足预设解析条件时,按照所述第一预设协议规范,继续解析第N个RTMP数据包之后的所有RTMP数据包。
7.根据权利要求6所述的装置,其特征在于,所述第一预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范;
或者,所述第一预设协议规范为按照第3类型数据块包括扩展时间戳的格式进行数据包解析的规范,所述第二预设协议规范为按照第3类型数据块不包括扩展时间戳的格式进行数据包解析的规范。
8.根据权利要求6或7所述的装置,其特征在于,所述解析结果包括包头header解析结果;所述预设解析条件为header解析结果表明了所述RTMP数据流的类型;所述RTMP数据流的类型包括音频流和视频流。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于当所述RTMP数据流的当前RTMP数据包为第3类型数据块时,获取所述当前RTMP数据包的预设字节,并按照扩展时间戳的格式解析所述预设字节的数值;
对比单元,用于将所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值进行对比,得到对比结果;
第五解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值相等时,按照第3类型数据块包括扩展时间戳的格式对后续所有RTMP数据包进行解析;
第六解析单元,用于当所述对比结果表明所述数值与所述当前RTMP数据包之前的非第3类型数据块的扩展时间戳对应的数值不相等时,调用并执行所述第一解析单元。
10.根据权利要求9所述的装置,其特征在于,所述预设字节为所述当前RTMP数据包的数据包头部之后的4个字节。
11.一种直播推流设备,其特征在于,包括:处理器、存储器、系统总线;
所述处理器以及所述存储器通过所述系统总线相连;
所述存储器用于存储一个或多个程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1-5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行权利要求1-5任一项所述的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品在终端设备上运行时,使得所述终端设备执行权利要求1-5任一项所述的方法。
CN202010811787.5A 2020-08-13 2020-08-13 一种直播推流方法、装置、存储介质及设备 Active CN111954014B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010811787.5A CN111954014B (zh) 2020-08-13 2020-08-13 一种直播推流方法、装置、存储介质及设备
PCT/CN2021/098298 WO2022033140A1 (zh) 2020-08-13 2021-06-04 一种直播推流方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010811787.5A CN111954014B (zh) 2020-08-13 2020-08-13 一种直播推流方法、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
CN111954014A true CN111954014A (zh) 2020-11-17
CN111954014B CN111954014B (zh) 2022-01-28

Family

ID=73333093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010811787.5A Active CN111954014B (zh) 2020-08-13 2020-08-13 一种直播推流方法、装置、存储介质及设备

Country Status (2)

Country Link
CN (1) CN111954014B (zh)
WO (1) WO2022033140A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022033140A1 (zh) * 2020-08-13 2022-02-17 北京金山云网络技术有限公司 一种直播推流方法、装置、存储介质及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108534A1 (en) * 2012-10-15 2014-04-17 Wowza Media Systems, LLC Systems and Methods of Communication using a Message Header that Includes Header Flags
CN107018446A (zh) * 2017-04-07 2017-08-04 无锡职业技术学院 一种网络视频点播以及直播的推流方法
CN108600859A (zh) * 2018-03-30 2018-09-28 深圳市网心科技有限公司 一种数据切片方法及系统
CN109309670A (zh) * 2018-09-07 2019-02-05 深圳市网心科技有限公司 数据流解码方法和系统、电子装置及计算机可读存储介质
CN110234020A (zh) * 2018-03-06 2019-09-13 优酷网络技术(北京)有限公司 视频播放方法及装置
CN110753234A (zh) * 2019-09-30 2020-02-04 安徽云森物联网科技有限公司 一种国标ps流转rtmp直播流的实时转换方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102438182B (zh) * 2010-09-29 2014-11-05 中兴通讯股份有限公司 一种视频流分析方法及装置
CN106656938B (zh) * 2015-11-02 2020-03-03 腾讯科技(深圳)有限公司 一种流媒体文件处理方法及装置
US10177958B2 (en) * 2017-02-07 2019-01-08 Da Sheng Inc. Method for synchronously taking audio and video in order to proceed one-to-multi multimedia stream
CN111954014B (zh) * 2020-08-13 2022-01-28 北京金山云网络技术有限公司 一种直播推流方法、装置、存储介质及设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140108534A1 (en) * 2012-10-15 2014-04-17 Wowza Media Systems, LLC Systems and Methods of Communication using a Message Header that Includes Header Flags
CN107018446A (zh) * 2017-04-07 2017-08-04 无锡职业技术学院 一种网络视频点播以及直播的推流方法
CN110234020A (zh) * 2018-03-06 2019-09-13 优酷网络技术(北京)有限公司 视频播放方法及装置
CN108600859A (zh) * 2018-03-30 2018-09-28 深圳市网心科技有限公司 一种数据切片方法及系统
CN109309670A (zh) * 2018-09-07 2019-02-05 深圳市网心科技有限公司 数据流解码方法和系统、电子装置及计算机可读存储介质
CN110753234A (zh) * 2019-09-30 2020-02-04 安徽云森物联网科技有限公司 一种国标ps流转rtmp直播流的实时转换方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022033140A1 (zh) * 2020-08-13 2022-02-17 北京金山云网络技术有限公司 一种直播推流方法、装置、存储介质及设备

Also Published As

Publication number Publication date
WO2022033140A1 (zh) 2022-02-17
CN111954014B (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
CN108650550B (zh) 网络传输质量分析方法、装置、计算机设备和存储介质
TWI575950B (zh) 串流伺服器及用於將一內容串流透過一網路提供至一用戶端之方法
CN108124202B (zh) 一种使流媒体服务器支持hls协议的方法
CN109495505B (zh) 流媒体协议转换方法、装置、系统及计算机可读介质
JP5572225B2 (ja) Ecmパケットを処理する方法及び装置
US9753794B2 (en) Method and apparatus for controlling sending of heartbeat signal
US20130290556A1 (en) Systems and Methods for Controlling Client Behavior in Adaptive Streaming
CN109525578B (zh) 一种cdn分发网络传输方法、装置、系统以及存储介质
CN112954434B (zh) 字幕处理方法、系统、电子设备和存储介质
CA2931525C (en) Data stream identifying method and device
JP6655093B2 (ja) 部分的セグメント用の表示
CN109151505B (zh) 一种视频转码方法、系统、装置及计算机可读存储介质
CN111954014B (zh) 一种直播推流方法、装置、存储介质及设备
CN110830460A (zh) 一种连接建立方法、装置、电子设备及存储介质
US20210375326A1 (en) Method, device, and computer program product for storing and providing video
CN111200760A (zh) 一种数据处理方法、装置及电子设备
US10659507B2 (en) Indication for partial segment
CN113079386B (zh) 一种视频在线播放方法、装置、电子设备及存储介质
CN111787396B (zh) 一种视频流解析方法及装置
CN111787420A (zh) 一种数据处理方法及装置、电子设备、可读存储介质
CN111083510A (zh) 推送hevc视频的方法和装置
CN109309670B (zh) 数据流解码方法和系统、电子装置及计算机可读存储介质
CN108616760B (zh) 一种基于浏览器的直播方法、服务器、主播端和用户端
CN112350986B (zh) 一种音视频网络传输碎片化的整形方法及系统
CN114979307A (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