首页 / 专利库 / 视听技术与设备 / 视频编码层 / 直播数据的发送接收方法、装置及电子设备

直播数据的发送接收方法、装置及电子设备

阅读:615发布:2020-05-30

专利汇可以提供直播数据的发送接收方法、装置及电子设备专利检索,专利查询,专利分析的服务。并且本 申请 提出一种直播数据的发送、接收方法以及发送、接收装置,其中,发送、接收方法包括:通过发送端在直播过程中采集直播信息,获取在直播过程中同步生成的业务消息,并将直播信息与同步生成的业务消息,封装至同一数据流,进而向接收端发送数据流。接收端将从发送端接收数据流,并对数据流进行解析,得到直播信息以及业务消息,进而根据直播信息进行展示;以及,根据业务消息执行业务操作。该方法通过将直播信息和业务消息封装至同一 视频流 中,使得业务消息与直播信息同步传输,从而解决了 现有技术 中视频与业务逻辑不同步的技术问题。,下面是直播数据的发送接收方法、装置及电子设备专利的具体信息内容。

1.一种直播数据的发送方法,其特征在于,所述方法包括以下步骤:
在直播过程中采集直播信息;
获取在所述直播过程中同步生成的业务消息;
将所述直播信息与同步生成的业务消息,封装至同一数据流;
向接收端发送所述数据流。
2.根据权利要求1所述的发送方法,其特征在于,所述直播信息为直播图像;所述数据流为视频数据流,所述视频数据流包括视频编码层;
所述将所述直播信息与同步生成的业务消息,封装至同一数据流,包括:
将所述业务消息编码后,封装至所述视频编码层中第一网络抽象层NAL单元;
将所述直播图像编码后,封装至所述视频编码层中第二NAL单元;
其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
3.根据权利要求2所述的发送方法,其特征在于,所述将所述业务消息编码后,封装至所述视频编码层中第一网络抽象层NAL单元,包括:
在所述第一NAL单元的NAL头中写入第一单元类型数据;所述第一单元类型数据用于指示附加增强信息类型;
在所述第一NAL单元的原始字节序列层RBSP中写入编码后的业务消息。
4.根据权利要求2所述的发送方法,其特征在于,所述将所述直播图像编码后,封装至所述视频编码层中第二NAL单元,包括:
在所述第二NAL单元的NAL头中写入第二单元类型数据;所述第二单元类型数据用于指示图像信息类型;
在所述第二NAL单元的RBSP中写入编码后的直播图像数据。
5.根据权利要求4所述的发送方法,其特征在于,所述在所述第二NAL单元的RBSP中写入编码后的直播图像数据,包括:
获取一直播图像对应的多组编码后的直播图像数据;
将每一组编码后的直播图像数据,写入对应的第二NAL单元的RBSP中。
6.一种直播数据的接收方法,其特征在于,所述方法包括以下步骤:
从发送端接收数据流;
对所述数据流进行解析,得到直播信息以及业务消息;
根据所述直播信息进行展示;
以及,根据所述业务消息执行业务操作。
7.根据权利要求6所述的接收方法,其特征在于,所述直播信息为直播图像,所述数据流为视频数据流;
所述对所述数据流进行解析,得到直播信息以及业务消息,包括:
从所述视频数据流中,提取视频编码层;
对所述视频编码层中第一网络抽象层NAL单元进行解析,得到所述业务消息;
对所述视频编码层中第二NAL单元进行解析,得到需要与所述业务消息同步处理的直播图像;
其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
8.根据权利要求7所述的接收方法,其特征在于,所述第一NAL单元的NAL头中写入有第一单元类型数据;所述第一单元类型数据用于指示附加增强信息类型;
所述对视频编码层中第一NAL单元进行解析,得到所述业务消息,包括:
对所述第一NAL单元中的原始字节序列层RBSP解析,得到所述业务消息。
9.一种直播数据的发送装置,其特征在于,所述装置包括:
采集模,用于在直播过程中采集直播信息;
获取模块,用于获取在所述直播过程中同步生成的业务消息;
封装模块,用于将所述直播信息与同步生成的业务消息,封装至同一数据流;
发送模块,用于向接收端发送所述数据流。
10.一种直播数据的接收装置,其特征在于,所述装置包括:
接收模块,用于从发送端接收数据流;
解析模块,用于对所述数据流进行解析,得到直播信息以及业务消息;
处理模块,用于根据所述直播信息进行展示;其中,所述直播信息为直播图像或直播字幕;以及,根据所述业务消息执行业务操作。

说明书全文

直播数据的发送接收方法、装置及电子设备

技术领域

[0001] 本申请涉及计算机算法领域,尤其涉及一种直播数据的发送接收方法、装置及电子设备。

背景技术

[0002] 在直播应用的开发过程中,对于直播视频与业务消息的传输是没有任何关联的,是通过不同的通道分开进行的。视频是通过视频流的通道进行传输,而用于客户端执行业务逻辑的业务消息则是通过其他通道进行传输。
[0003] 现有技术中,不同通道传输过程中,延迟情况不同,因此,当客户端执行某个业务逻辑时,会出现与视频流不同步的情况。发明内容
[0004] 本申请提出一种直播数据的发送、接收方法,发送、接收装置和电子设备,用于解决相关技术中客户端执行的业务逻辑与视频流不同步的技术问题。
[0005] 本申请一方面实施例提出了一种直播数据的发送方法,包括:
[0006] 在直播过程中采集直播信息;
[0007] 获取在所述直播过程中同步生成的业务消息;
[0008] 将所述直播信息与同步生成的业务消息,封装至同一数据流;
[0009] 向接收端发送所述数据流。
[0010] 作为本申请实施例的第一种可能的实现方式,所述直播信息为直播图像;所述数据流为视频数据流,所述视频数据流包括视频编码层;
[0011] 所述将所述直播信息与同步生成的业务消息,封装至同一数据流,包括:
[0012] 将所述业务消息编码后,封装至所述视频编码层中第一网络抽象层NAL单元;
[0013] 将所述直播图像编码后,封装至所述视频编码层中第二NAL单元;
[0014] 其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
[0015] 作为本申请实施例的第二种可能的实现方式,所述将所述业务消息编码后,封装至所述视频编码层中第一网络抽象层NAL单元,包括:
[0016] 在所述第一NAL单元的NAL头中写入第一单元类型数据;所述第一单元类型数据用于指示附加增强信息类型;
[0017] 在所述第一NAL单元的原始字节序列层RBSP中写入编码后的业务消息。
[0018] 作为本申请实施例的第三种可能的实现方式,所述将所述直播图像编码后,封装至所述视频编码层中第二NAL单元,包括:
[0019] 在所述第二NAL单元的NAL头中写入第二单元类型数据;所述第二单元类型数据用于指示图像信息类型;
[0020] 在所述第二NAL单元的RBSP中写入编码后的直播图像数据。
[0021] 作为本申请实施例的第四种可能的实现方式,所述在所述第二NAL单元的RBSP中写入编码后的直播图像数据,包括:
[0022] 获取一直播图像对应的多组编码后的直播图像数据;
[0023] 将每一组编码后的直播图像数据,写入对应的第二NAL单元的RBSP中。
[0024] 本申请实施例的直播数据的发送方法,通过在直播过程中采集直播信息;获取在直播过程中同步生成的业务消息;将直播信息与同步生成的业务消息,封装至同一数据流;向接收端发送数据流。该方法通过将直播信息和业务消息封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0025] 本申请又一方面实施例提出了一种直播数据的接收方法,包括:
[0026] 从发送端接收数据流;
[0027] 对所述数据流进行解析,得到直播信息以及业务消息;
[0028] 根据所述直播信息进行展示;
[0029] 以及,根据所述业务消息执行业务操作。
[0030] 作为本申请实施例的第一种可能的实现方式,所述直播信息为直播图像,所述数据流为视频数据流;
[0031] 所述对所述数据流进行解析,得到直播信息以及业务消息,包括:
[0032] 从所述视频数据流中,提取视频编码层;
[0033] 对所述视频编码层中第一网络抽象层NAL单元进行解析,得到所述业务消息;
[0034] 对所述视频编码层中第二NAL单元进行解析,得到需要与所述业务消息同步处理的直播图像;
[0035] 其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
[0036] 作为本申请实施例的第二种可能的实现方式,所述第一NAL单元的NAL头中写入有第一单元类型数据;所述第一单元类型数据用于指示附加增强信息类型;
[0037] 所述对视频编码层中第一NAL单元进行解析,得到所述业务消息,包括:
[0038] 对所述第一NAL单元中的原始字节序列层RBSP解析,得到所述业务消息。
[0039] 作为本申请实施例的第三种可能的实现方式,所述第二NAL单元的NAL头中写入有第二单元类型数据;所述第二单元类型数据用于指示图像信息类型;
[0040] 所述对视频编码层中第二NAL单元进行解析,得到需要与所述业务消息同步处理的直播图像,包括:
[0041] 解析对应同一帧直播图像的各第二NAL单元中的RBSP,得到所述直播图像。
[0042] 本申请实施例的直播数据的接收方法,通过从发送端接收数据流;对数据流进行解析,得到直播信息以及业务消息;根据直播信息进行展示;以及,根据业务消息执行业务操作。该方法通过将直播信息和业务消息封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0043] 本申请又一方面实施例提出了一种直播数据的发送装置,包括:
[0044] 采集模,用于在直播过程中采集直播信息;
[0045] 获取模块,用于获取在所述直播过程中同步生成的业务消息;
[0046] 封装模块,用于将所述直播信息与同步生成的业务消息,封装至同一数据流;
[0047] 发送模块,用于向接收端发送所述数据流。
[0048] 作为本申请实施例的第一种可能的实现方式,所述发送装置还包括:
[0049] 第一封装单元,将所述业务消息编码后,封装至所述视频编码层中第一网络抽象层NAL单元;
[0050] 第二封装单元,将所述直播图像编码后,封装至所述视频编码层中第二NAL单元;
[0051] 其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
[0052] 作为本申请实施例的第二种可能的实现方式,第一封装单元,还用于:
[0053] 在所述第一NAL单元的NAL头中写入第一单元类型数据;所述第一单元类型数据用于指示附加增强信息类型;
[0054] 在所述第一NAL单元的原始字节序列层RBSP中写入编码后的业务消息。
[0055] 作为本申请实施例的第三种可能的实现方式,第二封装单元,还用于:
[0056] 在所述第二NAL单元的NAL头中写入第二单元类型数据;所述第二单元类型数据用于指示图像信息类型;
[0057] 在所述第二NAL单元的RBSP中写入编码后的直播图像数据。
[0058] 作为本申请实施例的第四种可能的实现方式,所述发送装置还包括:
[0059] 第一获取单元,用于获取一帧直播图像对应的多组编码后的直播图像数据;
[0060] 写入模块,用于将每一组编码后的直播图像数据,写入对应的第二NAL单元的RBSP中。
[0061] 本申请实施例的直播数据的发送装置,通过在直播过程中采集直播信息;获取在直播过程中同步生成的业务消息;将直播信息与同步生成的业务消息,封装至同一数据流;向接收端发送数据流。该方法通过将直播信息和业务消息封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0062] 本申请又一方面实施例提出了一种直播数据的接收装置,包括:
[0063] 接收模块,用于从发送端接收数据流;
[0064] 解析模块,用于对所述数据流进行解析,得到直播信息以及业务消息;
[0065] 处理模块,用于根据所述直播信息进行展示;以及,根据所述业务消息执行业务操作。
[0066] 作为本申请实施例的第一种可能的实现方式,所述接收装置,还包括:
[0067] 所述对所述数据流进行解析,得到直播信息以及业务消息,包括:
[0068] 提取模块,用于从所述视频数据流中,提取视频编码层;
[0069] 第一解析单元,用于对所述视频编码层中第一网络抽象层NAL单元进行解析,得到所述业务消息;
[0070] 第二解析单元,对所述视频编码层中第二NAL单元进行解析,得到需要与所述业务消息同步处理的直播图像;
[0071] 其中,所述第一NAL单元与所述第二NAL单元相邻,所述第一NAL单元与所述第二NAL单元具有不同的单元类型。
[0072] 作为本申请实施例的第二种可能的实现方式,第一解析单元,还用于:
[0073] 对所述第一NAL单元中的原始字节序列层RBSP解析,得到所述业务消息。
[0074] 作为本申请实施例的第三种可能的实现方式,第二解析单元,还用于:
[0075] 解析对应同一帧直播图像的各第二NAL单元中的RBSP,得到所述直播图像。
[0076] 本申请实施例的直播数据的接收装置,通过从发送端接收数据流;对数据流进行解析,得到直播信息以及业务消息;根据直播信息进行展示;以及,根据业务消息执行业务操作。该方法通过将直播信息和业务消息均封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0077] 本申请又一方面实施例提出了一种电子设备,所述电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,执行如本申请前述实施例提出的直播数据的发送以及接收方法。
[0078] 本申请又一方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本申请前述实施例提出的直播数据的发送以及接收方法。
[0079] 本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。附图说明
[0080] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0081] 图1为现有技术中视频流的传输流程示意图;
[0082] 图2为现有技术中业务消息的传输流程示意图;
[0083] 图3本申请实施例所提供的一种直播数据的发送方法的流程示意图;
[0084] 图4本申请实施例所提供的一种直播数据的接收方法的流程示意图;
[0085] 图5本申请实施例所提供的一种直播数据的传输方法的流程示意图;
[0086] 图6本申请实施例所提供的一种直播数据的发送装置的结构示意图;
[0087] 图7本申请实施例所提供的另一种直播数据的发送装置的结构示意图;
[0088] 图8本申请实施例所提供的一种直播数据的接收装置的结构示意图;以及[0089] 图9本申请实施例所提供的另一种直播数据的接收装置的结构示意图。

具体实施方式

[0090] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0091] 现有技术中,在直播应用的开发过程中,一般是以即时通讯(Instant Messaging)的方式把主播端消息传递到观众端的,但因为消息分发通道和直播通道是分开的,因此消息与直播音视频数据的同步性就会出现很多问题。
[0092] 现有的技术方案是将视频与业务逻辑两部分单独控制,参见图1,直播开始后,在推流端通过摄像头采集数据并做处理后进行编码,再传输至播放端,在播放端接收数据后经过解码,从而生成图像。参见图2,业务逻辑层则通过即时通讯的方式进行通讯,在直播开始后,在推流端创建业务逻辑消息,并将业务逻辑消息发送至播放端,在播放端接收到业务逻辑消息后,进行解析,并做进一步的处理。
[0093] 参见图1、图2,视频数据传输与业务逻辑消息的传输,是两个传输过程,并且没有任何的关联。由于播放器在视频解码方面会存在视频丢帧、追帧、CDN延迟情况,因此在对某个业务逻辑消息传输时,可能会出现视频流与界面展示不同步的情况。另外一种情况下,业务逻辑传输存在较大延迟时,也会出现视频流与界面展示不同步的情况。
[0094] 本申请主要针对上述现有技术中,视频数据传输与业务逻辑消息的传输没有任何关联,并且在传输的过程中会出现数据丢失的技术问题,提出了一种直播数据的发送、接收方法。
[0095] 在具体描述本实施例之前,为了便于理解,首先对常用的关键术语进行介绍和解释:
[0096] 视频流:视频流是指视频数据的传输,例如,它能够被作为一个稳定的和连续的流通过网络处理。
[0097] 编码:所谓视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。
[0098] 解码:解码是一种用特定方法,把数码还原成它所代表的内容或将电脉冲信号光信号无线电波等转换成它所代表的信息、数据等的过程。解码是接收端将接受到的符号或代码还原为信息的过程,与编码过程相对应。
[0099] 下面参考附图描述本申请实施例的直播数据的发送方法和装置。
[0100] 图3为本申请实施例所提供的一种直播数据的发送方法的流程示意图。
[0101] 如图3所示,该直播数据的发送方法包括以下步骤:
[0102] 步骤101,在直播过程中采集直播信息。
[0103] 其中,直播消息可以是直播图像、直播字幕以及直播音频等。
[0104] 具体地,在直播过程中采集直播消息,是通过采集设备获取原始的数据,并将其输出至下一环节。
[0105] 图像的采集过程主要由摄像头、屏幕录制等方式拍摄成YUV编码的原始数据,然后经过编码压缩成H.264等格式的数据分发出去。
[0106] 音频的采集过程主要通过采集设备将环境中的模拟信号采集成PCM编码的原始数据,然后编码压缩成MP3等格式的数据分发出去。
[0107] 步骤102,获取在直播过程中同步生成的业务消息。
[0108] 本实施例中的获取在直播过程中同步生成的业务消息,其中,业务消息主要是指在直播过程中,业务逻辑层上传送的消息,可以包括在直播过程中服务器给客户端下发的指令。
[0109] 需要说明的是,业务逻辑层是实现业务功能的核心逻辑层,是对直播进行控制的业务逻辑形成的逻辑层。
[0110] 步骤103,将直播信息与同步生成的业务消息,封装至同一数据流。
[0111] 本实施例中,数据流为视频数据流,视频数据流又包括视频编码层(VCL,Video Coding Layer)。VCL数据即编码处理的输出,它表示被压缩编码后的视频数据序列。在VCL数据传输或存储之前,这些编码的VCL数据先被映射或封装进网络抽象层(NAL,Network Abstract Layer)单元。每个NAL单元包括:一组对应于视频编码数据的NAL头信息和一个原始字节序列负荷(RBSP,Raw Byte Sequence Payload)。
[0112] 首先对直播信息与同步生成的业务消息进行编码,并将编码后的业务消息,封装至视频编码层中的第一网络抽象层单元,将编码后的直播图像,封装至视频编码层中的第二NAL单元。其中,第一NAL单元与第二NAL单元相邻,并且第一NAL单元与第二NAL单元具有不同的单元类型。
[0113] 具体地,在第一NAL单元的NAL头中写入第一单元类型数据,其中,第一单元类型数据用于指示附加增强信息(SEI,Supplemental Enhancement Information)类型。在第一NAL单元的原始字节序列层RBSP中写入编码后的业务消息。RBSP的基本结构是在原始编码数据的后面添加了结尾比特,一个bit“1”,若干比特“0”,以便字节对齐。
[0114] 可选地,在第二NAL单元的NAL头中写入第二单元类型数据,其中,第二单元类型数据用于指示图像信息类型。并在第二NAL单元的RBSP中写入编码后的直播图像数据。进一步的,通过获取一帧直播图像对应的多组编码后的直播图像数据,进而将每一组编码后的直播图像数据,写入对应的第二NAL单元的RBSP中。
[0115] 步骤104,向接收端发送数据流。
[0116] 本实施例中,通过网络传输协议向接收端发送数据流,以使接收端接收数据流进行进一步的处理。
[0117] 本申请实施例的直播数据的发送方法,通过在直播过程中采集直播信息;获取在直播过程中同步生成的业务消息;将直播信息与同步生成的业务消息,封装至同一数据流;向接收端发送数据流。该方法通过将直播信息和业务消息均封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0118] 本申请实施例通过直播技术的发送方法,将直播信息与同步生成的业务消息封装至同一数据流,并发送至接收端,当接收端接收到数据流后,需要通过直播数据的接收方法对数据流进行处理,为了清楚说明如何在接收端对数据流进行处理,本实施例提供了一种直播数据的接收方法,图4为本申请实施例所提供的一种直播数据的接收方法的流程示意图。
[0119] 如图4所示,该直播数据的接收方法可以包括以下步骤:
[0120] 步骤201,从发送端接收数据流。
[0121] 其中,数据流为视频数据流。
[0122] 本实施例中,发送端将数据流发送至接收端后,接收端接收数据流,并对数据流做进一步的解析等操作。
[0123] 步骤202,对数据流进行解析,得到直播信息以及业务消息。
[0124] 本实施例中,得到的直播信息为直播图像。
[0125] 首先,从接收的视频数据流中,提取视频编码层,再对视频编码层中第一网络抽象层NAL单元进行解析,得到业务消息。同时对视频编码层中第二NAL单元进行解析,得到需要与业务消息同步处理的直播图像。其中,第一NAL单元与第二NAL单元相邻,第一NAL单元与第二NAL单元具有不同的单元类型。
[0126] 进一步的,第一NAL单元的NAL头中写入有第一单元类型数据,其中第一单元类型数据用于指示附加增强信息类型。对视频编码层中第一NAL单元进行解析,主要是对第一NAL单元中的原始字节序列层RBSP解析,进而得到业务消息。
[0127] 同样地,第二NAL单元的NAL头中写入有第二单元类型数据,其中第二单元类型数据用于指示图像信息类型。对视频编码层中第二NAL单元进行解析,是解析对应同一帧直播图像的各第二NAL单元中的RBSP,进而得到需要与业务消息同步处理的直播图像。
[0128] 步骤203,根据直播信息进行展示。
[0129] 具体地,根据解析得到的直播图像,在接收端进行展示,以供用户观看。
[0130] 步骤204,根据业务消息执行业务操作。
[0131] 具体地,根据解析得到的业务消息,执行业务操作,例如,直播页面上的发送弹幕、刷礼物等操作。
[0132] 本申请实施例的直播数据的接收方法,通过从发送端接收数据流;对数据流进行解析,得到直播信息以及业务消息;根据直播信息进行展示;以及,根据业务消息执行业务操作。该方法通过将直播信息和业务消息均封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0133] 为了实现上述实施例,本申请了提出另一中直播数据的传输方法,如图5为本申请实施例所提供的一种直播数据的传输方法的流程示意图。
[0134] 如图5所示,该直播数据的传输方法可以包括以下步骤:
[0135] 步骤301,直播开始。
[0136] 步骤302,发送端通过摄像头采集数据并进行处理。
[0137] 其中,采集到的数据包括直播信息与其同步生成的业务消息。
[0138] 具体地,在直播开始后,通过摄像头采集原始视频数据并进行处理。当视频或者音频完成采集之后得到原始数据,为了增强一些现场效果或者加上一些额外的效果,一般会在将其编码压缩前进行处理,比如打上时间戳或者公司Logo的印,祛斑美颜和声音混淆等处理。
[0139] 其中,图像的采集过程主要由摄像头、屏幕录制等方式拍摄成YUV编码的原始数据,然后经过编码压缩成H.264等格式的数据分发出去。
[0140] 音频的采集过程主要通过采集设备将环境中的模拟信号采集成PCM编码的原始数据,然后编码压缩成MP3等格式的数据分发出去。
[0141] 步骤303,发送端对采集到的数据进行编码。
[0142] 本实施例中,编码的核心思想就是去除冗余信息,其中冗余信息包括空间冗余、时间冗余、编码冗余、视觉冗余以及知识冗余。对采集到的数据进行编码主要是对空间冗余和时间冗余的压缩,以及编码压缩和视觉压缩。
[0143] 步骤304,在发送端对数据流添加指定标记。
[0144] 针对现有技术中,视频与业务消息不同步的技术问题,本申请实施例中,在视频数据的关键帧中添加最大长度为256的标记位,标记位数据可动态改变,发送端在业务消息指令的触发下,添加对应的标记位,再对其进行编码。
[0145] 其中,添加标记位的位置在H.264/H.265编码中的SEI(附加增强信息)添加信息。因为在传输过程中SEI并不是解码过程的必须项,而是集成在视频码流中,意味着视频编码器在输出视频码流的时候,可以不提供SEI信息。在视频传输过程、解封装、解码环节,都可能因为某种原因丢弃SEI。在视频内容的传输过程、生成端,都可以插入SEI信息。插入的信息,和其他视频内容一起经过传输链路到达了接收端。
[0146] 步骤305,发送端将编码后的数据传输至接收端。
[0147] 步骤306,接收端从发送端接收数据。
[0148] 本实施例中,发送端将数据流发送至接收端后,接收端接收数据,并对数据做进一步的解析等操作。
[0149] 步骤307,接收端对数据进行解码。
[0150] 由于从发送端接收的数据是编码后的,因此要对数据进行解码,首先对数据流进行处理,再进行逆变换,最后通过动态补偿和去方块滤波,从而实现对接收到的数据进行解码。
[0151] 步骤308,接收端解析指定标记。
[0152] 由于接收端在网络不佳的状况下,播放器会执行丢帧策略。为了避免这种情况的发生,本实施例中采用了修改播放器的策略,废弃掉播放器的丢帧策略,改为对每一帧都进行解析,当数据缓存过多时,采用快速解析关键帧的策略,进而解决视频与业务消息不同步的问题。
[0153] 步骤309,在接收端直播图像成像并对业务消息进行逻辑处理。
[0154] 具体地,根据解析得到的直播图像,在接收端进行成像,或者根据解析得到的业务消息,对业务消息进行逻辑处理,保证了视频与业务消息同步进行。
[0155] 本申请实施例的直播数据传输方法,通过发送端在直播过程中采集数据,并对数据进行编码,添加指定标记位,将编码后的数据传输至接收端,接收端接收到数据后,对数据进行解码,解析指定标记,进而根据解析的数据成像并进行逻辑处理。该方法通过在视频流中添加标记位的方式,并且在视频缓存过大时,快速解析堆积的关键帧,从而解析出需要的标记位,进而解决了视频与业务逻辑不同步的技术问题。
[0156] 为了实现上述实施例,本申请还提出一种直播数据的发送装置。
[0157] 图6为本申请实施例提供的一种直播数据的发送装置的结构示意图。
[0158] 如图6所示,该直播数据的发送装置包括:采集模块110、获取模块120、封装模块130、发送模块140。
[0159] 采集模块110,用于在直播过程中采集直播信息。
[0160] 获取模块120,用于获取在直播过程中同步生成的业务消息。
[0161] 封装模块130,用于将直播信息与同步生成的业务消息,封装至同一数据流。
[0162] 发送模块140,用于向接收端发送数据流。
[0163] 参见图7,作为本申请实施例的第一种可能的实现方式,发送装置还包括:
[0164] 第一封装单元131,用于将业务消息编码后,封装至视频编码层中第一网络抽象层NAL单元;
[0165] 第二封装单元132,用于将直播图像编码后,封装至视频编码层中第二NAL单元;
[0166] 其中,第一NAL单元与第二NAL单元相邻,第一NAL单元与第二NAL单元具有不同的单元类型。
[0167] 作为本申请实施例的第二种可能的实现方式,第一封装单元131,还用于:
[0168] 在第一NAL单元的NAL头中写入第一单元类型数据;第一单元类型数据用于指示附加增强信息类型;
[0169] 在第一NAL单元的原始字节序列层RBSP中写入编码后的业务消息。
[0170] 作为本申请实施例的第三种可能的实现方式,第二封装单元132,还用于:
[0171] 在第二NAL单元的NAL头中写入第二单元类型数据;第二单元类型数据用于指示图像信息类型;
[0172] 在第二NAL单元的RBSP中写入编码后的直播图像数据。
[0173] 作为本申请实施例的第四种可能的实现方式,直播数据的发送装置还包括:
[0174] 第一获取单元121,用于获取一帧直播图像对应的多组编码后的直播图像数据;
[0175] 写入模块150,用于将每一组编码后的直播图像数据,写入对应的第二NAL单元的RBSP中。
[0176] 本申请实施例的直播数据的发送装置,通过在直播过程中采集直播信息;获取在直播过程中同步生成的业务消息;将直播信息与同步生成的业务消息,封装至同一数据流;向接收端发送数据流。该方法通过将直播信息和业务消息均封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0177] 图8为本申请实施例提供的一种直播数据的接收装置的结构示意图。
[0178] 如图8所示,该直播数据的接收装置包括:接收模块210、解析模块220、处理模块230。
[0179] 接收模块210,用于从发送端接收数据流。
[0180] 解析模块220,用于对数据流进行解析,得到直播信息以及业务消息。
[0181] 处理模块230,用于根据直播信息进行展示;以及,根据业务消息执行业务操作。
[0182] 参见图9,作为本申请实施例的第一种可能的实现方式,直播数据的接收装置,还包括:
[0183] 对数据流进行解析,得到直播信息以及业务消息,包括:
[0184] 提取模块240,用于从视频数据流中,提取视频编码层;
[0185] 第一解析单元221,用于对视频编码层中第一网络抽象层NAL单元进行解析,得到业务消息;
[0186] 第二解析单元222,对视频编码层中第二NAL单元进行解析,得到需要与业务消息同步处理的直播图像;
[0187] 其中,第一NAL单元与第二NAL单元相邻,第一NAL单元与第二NAL单元具有不同的单元类型。
[0188] 作为本申请实施例的第二种可能的实现方式,第一解析单元221,还用于:
[0189] 对第一NAL单元中的原始字节序列层RBSP解析,得到业务消息。
[0190] 作为本申请实施例的第三种可能的实现方式,第二解析单元222,还用于:
[0191] 解析对应同一帧直播图像的各第二NAL单元中的RBSP,得到直播图像。
[0192] 本申请实施例的直播数据的接收装置,通过从发送端接收数据流;对数据流进行解析,得到直播信息以及业务消息;根据直播信息进行展示;以及,根据业务消息执行业务操作。该方法通过将直播信息和业务消息均封装至同一视频流中,使得业务消息与直播信息同步传输,从而解决了现有技术中视频与业务逻辑不同步的技术问题。
[0193] 需要说明的是,前述对直播数据的发送、接收方法实施例的解释说明也适用于该实施例的直播数据的发送、接收装置,此处不再赘述。
[0194] 为了实现上述实施例,本申请实施例还提出了一种电子设备,所述电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,执行如本申请前述实施例提出的直播数据的发送以及接收方法。
[0195] 为了实现上述实施例,本申请实施例还提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如本申请前述实施例提出的直播数据的发送以及接收方法。
[0196] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0197] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0198] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
[0199] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0200] 应当理解,本申请的各部分可以用硬件软件固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0201] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0202] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0203] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈