CN115460454A - 传输数据的解复用方法、装置、存储介质和电子设备 - Google Patents

传输数据的解复用方法、装置、存储介质和电子设备 Download PDF

Info

Publication number
CN115460454A
CN115460454A CN202110635172.6A CN202110635172A CN115460454A CN 115460454 A CN115460454 A CN 115460454A CN 202110635172 A CN202110635172 A CN 202110635172A CN 115460454 A CN115460454 A CN 115460454A
Authority
CN
China
Prior art keywords
transmission data
data
frame
type
frames
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.)
Pending
Application number
CN202110635172.6A
Other languages
English (en)
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.)
Tencent Technology Beijing Co Ltd
Original Assignee
Tencent Technology Beijing 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 Tencent Technology Beijing Co Ltd filed Critical Tencent Technology Beijing Co Ltd
Priority to CN202110635172.6A priority Critical patent/CN115460454A/zh
Publication of CN115460454A publication Critical patent/CN115460454A/zh
Pending legal-status Critical Current

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/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/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/439Processing of audio elementary streams
    • H04N21/4392Processing of audio elementary streams involving audio buffer management
    • 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/439Processing of audio elementary streams
    • H04N21/4398Processing of audio elementary streams involving reformatting operations of audio signals
    • 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/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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/4402Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440218Processing 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 reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请实施例提供的传输数据的解复用方法、装置、存储介质和电子设备,涉及计算机技术领域。本申请实施例提供的传输数据的解复用方法,可以接收传输数据流,传输数据流中包括间隔排列的两种不同数据类型的传输数据,采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据后,将其存储至相应的数据缓冲区,该传输数据可以为第一类型传输数据或第二类型传输数据,若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。从而可以解决播放器的播放卡顿问题,提高播放器的播放效率。

Description

传输数据的解复用方法、装置、存储介质和电子设备
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种传输数据的解复用方法、装置、存储介质和电子设备。
背景技术
在正常情况下,封装格式的传输流(Transport Stream,TS)中,音频数据和视频数据是均匀分布的;例如,在收看直播节目的时候,音频数据和视频数据是同时采集的,相应的,在编码形成TS流的过程中,音频数据和视频数据在TS流中也是均匀分布的。
但是,在异常情况下,如果连续解析多帧视频数据,或连续解析多帧音频数据,会导致解析后的音视频播放出现卡顿现象,降低播放器的播放效率。
发明内容
为解决相关技术中存在的技术问题,本申请实施例提供一种传输数据的解复用方法、装置、存储介质和电子设备,可以解决播放器的播放卡顿问题,提高播放器的播放效率。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供了一种传输数据的解复用方法,所述方法包括:
接收传输数据流,所述传输数据流中包括间隔排列的两种不同数据类型的传输数据;
采用第一解析器对所述传输数据流进行解析,每解析获得一帧传输数据,将所述一帧传输数据存储至相应的数据缓冲区,所述一帧传输数据为第一类型传输数据或第二类型传输数据;
若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用所述第二解析器在所述传输数据流中,查找并解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据;所述M为预设自然数。
第二方面,本申请实施例还提供了一种传输数据的解复用装置,所述装置包括:
数据流接收单元,用于接收传输数据流,所述传输数据流中包括间隔排列的两种不同数据类型的传输数据;
数据解析单元,用于采用第一解析器对所述传输数据流进行解析,每解析获得一帧传输数据,将所述一帧传输数据存储至相应的数据缓冲区,所述一帧传输数据为第一类型传输数据或第二类型传输数据;
数据查找单元,用于若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用所述第二解析器在所述传输数据流中,查找并解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据;所述M为预设自然数。
在一种可选的实施例中,所述数据查找单元,具体用于:
确定所述M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳;
采用所述第二解析器在所述传输数据流中,查找位于所述M帧第一类型传输数据之后的,与所述第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并解析获得所述第二类型数据;
采用所述第二解析器依次解析获得,与所述M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据。
在一种可选的实施例中,所述数据查找单元,还用于:
采用所述第二解析器在位于所述M帧第一类型传输数据之后的传输数据流中,按照设定帧数量阈值,依次获取传输数据,其中,每获得一帧传输数据,执行如下操作:
若当前获取的一帧传输数据为第二类型传输数据,则采用所述第二解析器,确定当前获取的第二类型传输数据的时间戳;
若所述当前获取的第二类型传输数据的时间戳与所述第1帧第一类型传输数据的时间戳相同,则执行解析所述当前获取的第二类型传输数据的步骤。
在一种可选的实施例中,所述数据查找单元,还用于:
针对位于与所述第1帧第一类型传输数据相匹配的第二类型传输数据之后的各帧传输数据,分别执行如下操作:若确定一帧传输数据为第一类型数据,则舍弃所述一帧传输数据;若确定所述一帧传输数据为第二类型数据,则采用所述第二解析器解析获得所述一帧传输数据;所述各帧传输数据中的最后一帧传输数据为,与所述第M帧第一类型传输数据相匹配的第二类型传输数据。
在一种可选的实施例中,所述M帧通过如下方式确定:
根据所述数据缓冲区的存储容量和传输数据流的传输速率,确定所述数据缓冲区的存储帧数量;
选取小于所述存储帧数量的数值作为所述M帧。
在一种可选的实施例中,所述装置还包括解析器关闭单元,用于:
在解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据之后,若确定所述第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭所述第二解析器。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的传输数据的解复用方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面的传输数据的解复用方法。
本申请实施例提供的传输数据的解复用方法、装置、存储介质和电子设备,可以接收传输数据流,传输数据流中包括间隔排列的两种不同数据类型的传输数据,采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据后,将其存储至相应的数据缓冲区,该传输数据可以为第一类型传输数据或第二类型传输数据,若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。由于播放器在对传输数据流进行解析时,如果连续解析了M帧第一类型传输数据,却解析不到对应的第二类型传输数据,会将解析获得的第一类型传输数据丢弃掉而造成视频播放卡顿,而本申请可以采用第二解析器去查找并解析获得与M帧第一类型传输数据对应的第二类型传输数据,从而可以解决播放器的播放卡顿问题,提高播放器的播放效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种传输数据的解复用方法的应用场景图;
图2为本申请实施例提供的一种通用播放器的流程示意图;
图3为本申请实施例提供的一种传输数据的解复用方法的流程示意图;
图4为本申请实施例提供的一种TS流的示意图;
图5为本申请实施例提供的一种M帧确定的流程示意图;
图6为本申请实施例提供的另一种TS流的示意图;
图7为本申请实施例提供的另一种传输数据的解复用方法的流程示意图;
图8为本申请实施例提供的另一种TS流的示意图;
图9为本申请实施例提供的另一种传输数据的解复用方法的流程示意图;
图10为本申请实施例提供的一种传输数据的解复用装置的结构示意图;
图11为本申请实施例提供的另一种传输数据的解复用装置的结构示意图;
图12为本申请实施例提供的一种电子设备的结构示意图;
图13为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,本申请的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)TS流:是由MPEG(Moving Picture Experts Group,动态图像专家组)组织提出的一种音视频的封装格式。
(2)解复用(Demuxer):把封装格式数据拆分成音视频压缩数据的过程。
(3)基本流(Elementary Stream,ES):是直接从编码器出来的数据流,可以是编码过的视频数据流(如,H.264,MJPEG(Motion Joint Photographic Experts Group,移动式连续图像专家组)等),音频数据流(AAC(Advanced Audio Coding,高级音频编码)),或其他编码数据流的统称。
(4)打包基本流(Packetized Elementary Streams,PES):是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头形成的。
(5)交互式网络电视(Internet Protocol TV or Interactive Personal TV,IPTV):是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。
下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
文中的术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。本申请实施例中,服务器可以将音视频数据通过云存储的方式保存在云平台中,并通过云平台向终端设备发送传输数据流,本申请实施例采用第一解析器和第二解析器对云平台发送的传输数据流进行解复用。
为更好地理解本申请实施例提供的技术方案,下面对本申请实施例提供的技术方案适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申请实施例而非限定。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
本申请实施例所提供的传输数据的解复用方法可以应用于图1示出的应用场景中。参见图1所示,服务器100通过网络200与终端设备300进行通信连接,其中,网络200可以是但不限于局域网、城域网或广域网等,与服务器100连接的终端设备300的数量可以是多个。终端设备300可以通过网络200和服务器100相互传输通信数据和消息。
终端设备300可以是便携设备(例如:手机、平板电脑、笔记本电脑等),也可以是计算机、智能屏或个人电脑(Personal Computer,PC)等。服务器100可以是一台服务器或由若干台服务器组成的服务器集群或云计算中心,或者是一个虚拟化平台,也可以是个人计算机、大中型计算机或计算机集群等。根据实现需要,本申请实施例中的应用场景中可以具有任意数目的终端设备和服务器。本申请实施例对此不做特殊限定。本申请实施例提供的传输数据的解复用方法可以由终端设备300执行,或者由终端设备300和服务器100协作执行。
示例性地,终端设备300中可以安装有某播放器,服务器100可以将多媒体文件发送给终端设备300,终端设备300在接收到该多媒体文件后,可以通过播放器对该多媒体文件进行解协议操作,得到封装格式的传输数据流,然后对传输数据流进行解复用操作,分别得到音频压缩数据和视频压缩数据。播放器可以对音频压缩数据和视频压缩数据分别进行解码后,再进行音视频同步操作,从而播放该多媒体文件。
播放器在对传输数据流进行解复用操作时,可以采用第一解析器对传输数据流进行解析,并且每解析获得一帧传输数据,将所述一帧传输数据存储至相应的数据缓冲区。其中,一帧传输数据可以是第一类型传输数据,也可以是第二类型传输数据。如果连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用第二解析器在TS流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。在解析获得与M帧第一类型传输数据相匹配的第二类型传输数据之后,如果确定第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。
TS流目前广泛用在IPTV的场景中,TS流通常被封装成固定188字节的包,是在PES的基础上加入TS头组成(需要注意的是一个TS包中的有效数据不一定是一个完整的PES包)。通用的播放器流程可以如图2所示,终端设备上安装的播放器在获取到一个多媒体文件后,会先对该多媒体文件进行解协议操作,得到封装格式数据,然后对给封装格式数据进行解复用操作,分别得到对应的音频压缩数据和视频压缩数据。播放器可以对音频压缩数据进行音频解码操作得到对应的音频原始数据,对视频压缩数据进行视频解码操作得到对应的视频原始数据,再将得到的音频原始数据和视频原始数据进行音视频同步操作,最后播放该多媒体文件。
在正常情况下,封装格式的TS流中,音频数据和视频数据是均匀分布的,则播放器在对该TS流进行解复用后的音视频播放也是正常的。但是,在异常情况下,如,当编码或者传输出现异常时,TS流中的音频数据和视频数据之间会存在很大的间隔;例如,在TS流中,前60s均为视频数据,而60s之后,均为音频数据,则播放器在对该TS流进行解复用后的音视频播放会出现卡顿现象。
这是因为播放器会先按照TS流的顺序对TS流中的音频数据和视频数据进行解析,然后将得到的音频压缩数据和视频压缩数据存储至对应的缓冲区,因此,播放器在对TS流中的音频数据和视频数据进行解析时,会出现以下两种情况导致播放器播放卡顿:
第一种情况为:如果播放器先解析一帧音频数据,然后解析一帧视频数据,再连续解析多帧视频数据,则缓冲区就会先存储一帧音频压缩数据,然后存储一帧视频压缩数据,再存储多帧视频压缩数据。
由于音频压缩数据和视频压缩数据在存储至缓冲区时是匹配存储的,即存储一帧音频压缩数据,就需要存储该音频压缩数据所匹配的一帧视频压缩数据,则当缓冲区存储了多帧视频压缩数据中的一部分视频压缩数据后,依旧无法开始存储音频压缩数据,则缓冲区会将存储的多帧视频压缩数据中的另一部分视频压缩数据丢弃掉,从而导致播放器的播放卡顿。
第二种情况为:如果播放器先解析一帧视频数据,然后解析一帧音频数据,再连续解析多帧音频数据,则当缓冲区存储了多帧音频压缩数据中的部分音频压缩数据后,依旧无法开始存储视频压缩数据,则缓冲区会将存储的多帧音频压缩数据中的另一部分音频压缩数据丢弃掉,从而也会导致播放器的播放卡顿。
由此可见,已有技术下相关技术中,由于播放器在缓冲区中丢弃了一部分的音频压缩数据或视频压缩数据,因此,会导致播放卡顿,从而降低了播放器的播放效率;
进一步地,即使在一定程度上增加缓冲区的存储容量以缓解上述两种情况的发生,则虽然播放器可以正常播放,但是会在很大程度上提高内存消耗量,从而增加播放器的成本。
为了解决上述问题,本申请实施例提供了一种传输数据的解复用方法,在接收到包括间隔排列的两种不同数据类型的传输数据的传输数据流后,可以采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据,将一帧传输数据存储至相应的数据缓冲区,其中,一帧传输数据为第一类型传输数据或第二类型传输数据,当连续将M帧第一类型传输数据存储至相应的数据缓冲区时,可以开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。该方法可以解决播放器的播放卡顿问题,提高播放器的播放效率,同时也可以降低播放器的内存消耗量,进而降低播放器的成本。
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际的处理过程中或者装置执行时,可按照实施例或者附图所示的方法顺序执行或者并行执行。
图3示出了本申请实施例提供的一种传输数据的解复用方法的流程图,该方法可以由图1中的终端设备300执行,也可以由其它电子设备执行。示例性地,下文以用于对传输数据进行解复用的终端设备作为执行主体,说明本申请实施例的传输数据的解复用方法的具体实现过程。其它设备执行的具体实施过程与终端设备单独执行的过程类似,本文中不再赘述。
如图3所示,该传输数据的解复用方法包括如下步骤:
步骤S301,接收传输数据流。
该传输数据流中可以包括间隔排列的两种不同数据类型的传输数据。具体地,该传输数据流可以是封装格式的TS流,该TS中可以包括间隔分布的音频数据和视频数据。例如,TS流中的音频数据和视频数据分布可以如图4所示。
步骤S302,采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据,将一帧传输数据存储至相应的数据缓冲区。
其中,一帧传输数据可以为第一类型传输数据,也可以为第二类型传输数据。第一类型传输数据可以是音频数据,相对应地,第二类型传输数据可以是视频数据;或者,第一类型传输数据可以是视频数据,相对应地,第二类型传输数据可以是音频数据。
例如,可以采用第一解析器对TS流进行解析,并且,每解析一帧音频数据,就将获得的音频压缩数据存储至对应的音频缓冲区,每解析一帧视频数据,就将获得的视频压缩数据存储至对应的视频缓冲区。
步骤S303,若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。
如果第一解析器连续将解析获得的M帧第一类型传输数据存储至相应的数据缓冲区,则可以开启第二解析器,并确定出M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳。然后采用第二解析器在传输数据流中,查找位于M帧第一类型传输数据之后的,与第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并解析获得该第二类型数据,以及采用第二解析器依次解析获得,与M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据。第二解析器在解析获得与M帧第一类型传输数据相匹配的第二类型传输数据后,可以将第二类型传输数据存储至相应的数据缓冲区。
其中,M可以为预设自然数。可以先根据数据缓冲区的存储容量和传输数据流的传输速率,确定出数据缓冲区的可播放时长,并根据该可播放时长确定出数据缓冲区的存储帧数量。在确定出数据缓冲区的存储帧数量后,可以选择小于该存储帧数量的数值作为M帧。例如,M帧可以为数据缓冲区的存储帧数量的一半,也可以为数据缓冲区的存储帧数量的三分之一等,本申请实施例对此不做限定。
由于第一解析器连续解析获得了多帧第一类型传输数据后,会将多帧第一类型传输数据存储至数据缓冲区,则数据缓冲区在连续存储了一部分第一类型传输数据后,依旧无法存储到第二类型传输数据时,会将解析获得的另一部分第一类型传输数据丢弃掉,在这种情况下,会导致播放器发生卡顿现象。因此,可以将数据缓冲区的存储帧数量中的部分存储帧数量作为M帧,从而当数据缓冲区存储的第一类型传输数据的帧数量达到M帧时,可以开启第二解析器去查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据,使得播放器可以正常播放。
在一种实施例中,可以根据图5示出的过程来确定M帧,如图5所示,第一解析器可以根据数据缓冲区的存储容量和当前码流信息,确定出M帧。具体地,第一解析器可以先根据数据缓冲区的存储容量和当前播放码流码率,确定出数据缓冲区满的可播放时长,且数据缓冲区满的可播放时长=数据缓冲区的存储容量/当前播放码流码率,然后可以根据数据缓冲区满的可播放时长确定出数据缓冲区的存储帧数量,并将该存储帧数量的一半作为M帧。当数据缓冲区为音频缓冲区时,音频缓冲区满的可播放器时长=音频缓冲区的存储容量/当前音频播放码流码率;当数据缓冲区为视频缓冲区时,视频缓冲区满的可播放器时长=视频缓冲区的存储容量/当前视频播放码流码率。
例如,TS流中的音频数据和视频数据分布可以如图6所示。并且,在图6所示的TS流中,音频数据和视频数据的分布为:第1帧音频数据、第1帧视频数据、第2帧音频数据、第2-20帧视频数据、第3帧音频数据、第21帧视频数据。假设M=6,则当第一解析器解析第2帧视频数据,并将解析获得的第2帧视频压缩数据存储至视频缓冲区后,第一解析器连续解析了6帧视频数据,即解析了第3-8帧视频数据,却无法解析到对应的音频数据时,就会开启第二解析器,去查找TS流中的第3帧音频数据,采用第二解析器解析第3帧音频数据,并将解析获得的第3帧音频压缩数据存储至音频缓冲区。在将解析获得的第3帧音频压缩数据存储至音频缓冲区后,第二解析器可以解析第4-8帧音频数据,并将获得的第4-8帧音频压缩数据存储至音频缓冲区。
具体地,可以先确定出M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳,然后采用第二解析器在位于M帧第一类型传输数据之后的传输数据流中,按照设定帧数量阈值,依次获取传输数据,其中,每获得一帧传输数据,可以执行如下操作:若当前获取的一帧传输数据为第二类型传输数据,则采用第二解析器,确定当前获取的第二类型传输数据的时间戳;若当前获取的第二类型传输数据的时间戳与第1帧第一类型传输数据的时间戳相同,则停止查找过程,并执行解析当前获取的第二类型传输数据的步骤,否则,舍弃当前获取的第二类型传输数据,并继续执行查找过程,获取下一帧传输数据;若当前获取的一帧传输数据为第一类型传输数据,则舍弃当前获取的第一类型传输数据,并继续执行查找过程,获取下一帧传输数据。
进一步地说,可以采用第二解析器在位于M帧第一类型传输数据之后的传输数据流中,按照第一帧数量阈值,依次获取传输数据,每获取一帧传输数据,确定当前获取的传输数据是否为第二类型传输数据,如果当前获取的传输数据不是第二类型传输数据,则跳过当前获取的传输数据,并继续执行查找过程,获取下一帧传输数据;如果当前获取的传输数据是第二类型传输数据,则通过第二解析器,确定当前获取的第二类型传输数据的时间戳,若当前获取的第二类型传输数据的时间戳与第1帧第一类型传输数据的时间戳相同,则停止查找过程,并执行解析当前获取的第二类型传输数据的步骤。例如,TS流中音频数据和视频数据的分布为:第1帧音频数据、第1帧视频数据、第2帧音频数据、第2-19帧视频数据、第3帧音频数据、第20帧视频数据。假设M=10,即第一解析器连续解析了第3-12帧视频数据,则第二解析器需要在位于第12帧视频数据之后的TS流中,查找到与第3帧视频数据时间戳相同的音频数据,可以将第一帧数量阈值设置为4,即在TS流中,每间隔4帧,获取一帧数据,如果该帧数据为视频数据,则忽略,再间隔4帧,获取一帧数据;如果该帧数据为音频数据,则获取该帧音频数据的时间戳。在TS流中,从第12帧视频数据开始,每间隔4帧,获取一帧数据,则第二解析器第一次获取的数据为第16帧视频数据,由于当前获取的是视频数据而不是音频数据,因此可以忽略,继续向后查找;第二解析器第二次获取的数据为第3帧音频数据,由于当前获取的是音频数据,则需要确定当前获取的数据的时间戳是否与第3帧视频数据的时间戳相同,比较之后发现,当前获取的数据的时间戳与第3帧视频数据的时间戳相同,则可以停止查找过程,并执行解析第3帧音频数据的步骤。
若当前获取的第二类型传输数据的时间戳大于第1帧第一类型传输数据的时间戳,则第二解析器预期解析的第二类型传输数据在之前的传输数据流中,即第二解析器可以从当前获取的第二类型传输数据处开始向前,按照第二帧数量阈值,依次获取传输数据,每获取一帧传输数据,确定当前获取的传输数据是否为第二类型传输数据,如果当前获取的传输数据是第二类型传输数据,则采用第二解析器确定当前获取的第二类型传输数据的时间戳,若当前获取的第二类型传输数据的时间戳与第1帧第一类型传输数据的时间戳相同,则停止查找过程,并执行解析当前获取的第二类型传输数据的步骤。其中,第二帧数量阈值小于第一帧数量阈值。
例如,TS流中音频数据和视频数据的分布为:第1帧音频数据、第1帧视频数据、第2帧音频数据、第2-19帧视频数据、第3帧音频数据、第20帧视频数据、第4帧音频数据、第21帧视频数据、第5帧音频数据、第22帧视频数据。假设M=10,即第一解析器连续解析了第3-12帧视频数据,则第二解析器需要在位于第12帧视频数据之后的TS流中,查找到与第3帧视频数据时间戳相同的音频数据。可以将第一帧数量阈值设置为5,则第二解析器第一次获取的数据为第17帧视频数据,可以忽略并继续向后查找;第二解析器第二次获取的数据为第4帧音频数据,将当前获取的数据的时间戳与第3帧视频数据的时间戳进行比较,发现当前获取的数据的时间戳大于第3帧视频数据的时间戳,则可以按照第二帧数量阈值,依次获取数据,并将第二帧数量阈值设置为2,即在位于第4帧音频数据之前的TS流中,从第4帧音频数据开始向前,每间隔2帧,获取一帧数据,则第二解析器第一次获取的数据为第3帧音频数据,将当前获取的音频数据的时间戳与第3帧视频数据的时间戳进行比较,发现当前获取的音频数据的时间戳与第3帧视频数据的时间戳相同,则可以停止查找过程,并执行解析第3帧音频数据的步骤。
若当前获取的第二类型传输数据的时间戳小于第1帧第一类型传输数据的时间戳,则第二解析器在当前获取的第二类型传输数据之后的传输数据流中继续查找与第1帧第一类型传输数据的时间戳相同的第二类型传输数据。
若当前获取的第二类型传输数据的时间戳大于第1帧第一类型传输数据的时间戳,则第二解析器在当前获取的第二类型传输数据之前的传输数据流中继续查找与第1帧第一类型传输数据的时间戳相同的第二类型传输数据。
在查找到与第1帧第一类型传输数据的时间戳相同的第二类型传输数据后,第二解析器可以解析获得该第二类型传输数据。
针对位于与第1帧第一类型传输数据相匹配的第二类型传输数据之后的各帧传输数据,可以分别执行如下操作:若确定一帧传输数据为第一类型数据,则舍弃该传输数据;若确定一帧传输数据为第二类型数据,则采用第二解析器解析获得该传输数据。其中,各帧传输数据中的最后一帧传输数据可以为,与第M帧第一类型传输数据相匹配的第二类型传输数据。
采用第二解析器,每解析获得与M帧第一类型传输数据相匹配的一帧第二类型传输数据,可以将该帧第二类型传输数据存储至相应的数据缓冲区。
在一种实施例中,在第二解析器解析获得与M帧第一类型传输数据相匹配的第二类型传输数据,并将第二类型传输数据存储至相应的数据缓冲区之后,如果确定第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。
本申请实施例提供的传输数据的解复用方法,在接收到传输数据流,该传输数据流中可以包括间隔排列的两种不同数据类型的传输数据后,可以采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据,将一帧传输数据存储至相应的数据缓冲区,其中,一帧传输数据为第一类型传输数据或第二类型传输数据,当连续将M帧第一类型传输数据存储至相应的数据缓冲区时,可以开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据。并且,在解析获得与M帧第一类型传输数据相匹配的第二类型传输数据之后,采用第一解析器继续对传输数据流进行解析的过程中,如果未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。从而可以解决播放器的播放卡顿问题,提高播放器的播放效率,同时也可以降低播放器的内存消耗量,进而降低播放器的成本。
在一些实施例中,本申请提出的传输数据的解复用方法可以按照图7示出的过程进行实现,该过程可以由图1中的终端设备300执行,也可以由其它电子设备执行。示例性地,下文以用于对传输数据进行解复用的终端设备作为执行主体,其它设备执行的具体实施过程与终端设备单独执行的过程类似,本文中不再赘述。
如图7所示,可以包括如下步骤:
步骤S701,接收传输数据流。
该传输数据流中可以包括间隔排列的两种不同数据类型的传输数据。
步骤S702,采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据,将一帧传输数据存储至相应的数据缓冲区。
其中,一帧传输数据可以为第一类型传输数据或第二类型传输数据。
步骤S703,确定是否连续将M帧第一类型传输数据存储至相应的数据缓冲区;如果否,执行步骤S704;如果是,执行步骤S705。
在采用第一解析器对传输数据流进行解析,并将解析获得的传输数据存储至相应的数据缓冲区的过程中,可以判断是否连续将M帧第一类型传输数据存储至相应的数据缓冲区。其中,M可以为预设自然数。
步骤S704,不开启第二解析器。
步骤S705,开启第二解析器,并采用第二解析器在传输数据流中,查找到位于M帧第一类型传输数据之后的,与第1帧第一类型传输数据的时间戳相同的第二类型传输数据。
如果确定没有连续将M帧第一类型传输数据存储至相应的数据缓冲区,则不开启第二解析器,对该传输数据流中的传输数据进行解析的仍然只有第一解析器。如果确定连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,并采用第二解析器在传输数据流中,查找到位于M帧第一类型传输数据之后的,与第1帧第一类型传输数据的时间戳相同的第二类型传输数据。
具体地,可以先确定出M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳,然后采用第二解析器在位于M帧第一类型传输数据之后的传输数据流中,按照设定帧数量阈值,依次获取传输数据,其中,每获得一帧传输数据,可以执行如下操作:
若当前获取的一帧传输数据为第二类型传输数据,则采用第二解析器,确定当前获取的第二类型传输数据的时间戳;若当前获取的第二类型传输数据的时间戳与第1帧第一类型传输数据的时间戳相同,则执行解析当前获取的第二类型传输数据的步骤,否则,舍弃当前获取的第二类型传输数据。
步骤S706,采用第二解析器解析获得与第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并将该第二类型传输数据存储至相应的数据缓存区。
在查找到与第1帧第一类型传输数据的时间戳相同的第二类型传输数据后,可以采用第二解析器解析获得该第二类型传输数据,并将该第二类型传输数据存储至相应的数据缓冲区。
步骤S707,采用第二解析器依次解析获得,与M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据,并将第二类型传输数据存储至相应的数据缓冲区。
在采用第二解析器完成对与第1帧第一类型传输数据的时间戳相同的第二类型传输数据的解析后,针对位于与第1帧第一类型传输数据相匹配的第二类型传输数据之后的各帧传输数据,可以分别执行如下操作:
若确定一帧传输数据为第一类型数据,则舍弃该传输数据;若确定一帧传输数据为第二类型数据,则采用第二解析器解析获得该传输数据。其中,各帧传输数据中的最后一帧传输数据可以为,与第M帧第一类型传输数据相匹配的第二类型传输数据。
在采用第二解析器解析获得,与M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据后,可以将这些第二类型传输数据分别存储至相应的数据缓冲区。
步骤S708,在第二解析器将第二类型传输数据存储至相应的数据缓冲区之后,若确定第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。
在第二解析器将与M帧第一类型传输数据相匹配的第二类型传输数据存储至相应的数据缓冲区之后,若确定第一解析器未连续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。
本申请实施例提供的传输数据的解复用方法,在第一解析器对TS流进行解析的过程中,如果TS流中出现了音视频长间隔的情况,可以开启第二解析器,在TS流中查找需要的音视频数据,并采用第二解析器对需要的音视频数据进行解析,从而可以解决播放器的播放卡顿问题,提高播放器的播放效率。
参阅图8所示,下面采用一个具体的应用场景,对本申请实施例提供的传输数据的解复用方法做出进一步详细说明:
步骤S801,接收TS流。
假设接收到的TS流中的音视频分布可以如图9所示,由图9可知,TS流中的音视频分布为:第1帧视频数据、第1帧音频数据、第2帧视频数据、第2-9帧音频数据,第3帧视频数据、第10帧音频数据、第4帧视频数据、第11帧音频数据、第5帧视频数据、第12帧音频数据、第6帧视频数据…。
步骤S802,采用第一解析器对TS流进行解析,每解析获得一帧音频压缩数据,将一帧音频压缩数据存储至音频缓冲区,每解析获得一帧视频压缩数据,将一帧视频压缩数据存储至视频缓冲区。
可以采用第一解析器对TS流中的第1帧视频数据进行解析,并将解析获得的第1帧视频压缩数据存储至视频缓冲区,采用第一解析器对TS流中的第1帧音频数据进行解析,并将解析获得的第1帧音频压缩数据存储至音频缓冲区,采用第一解析器对TS流中的第2帧视频数据进行解析,并将解析获得的第2帧视频压缩数据存储至视频缓冲区,采用第一解析器对TS流中的第2帧音频数据进行解析,并将解析获得的第2帧音频压缩数据存储至音频缓冲区…。
步骤S803,如果连续将4帧音频压缩数据存储至音频缓冲区,则开启第二解析器。
可以假设M=4,则当第一解析器分别解析第3帧音频数据、第4帧音频数据、第5帧音频数据和第6帧音频数据,并将解析获得的第3帧音频压缩数据、第4帧音频压缩数据、第5帧音频压缩数据和第6帧音频压缩数据,分别存储至音频缓冲区时,可以开启第二解析器。
步骤S804,确定第3帧音频数据的时间戳,采用第二解析器在TS流中查找与第3帧音频数据的时间戳相同的第3帧视频数据。
可以先确定出第3帧音频数据的时间戳,然后采用第二解析器从第6帧音频数据位置处开始,查找与第3帧音频数据的时间戳相同的第3帧视频数据。
具体地,可以将设定帧数量阈值设置为4,则可以在采用第二解析器在位于第6帧音频数据之后的TS流中,每间隔4帧,获取一帧数据,则第二解析器第一次获取的数据为第3帧视频数据,由于当前获取的是视频数据,则需要确定当前获取的视频数据的时间戳,并将当前获取的视频数据的时间戳与第3帧音频数据的时间戳进行比较,确定当前获取的视频数据的时间戳与第3帧音频数据的时间戳相同,则可以停止查找过程,并执行解析第3帧视频数据的步骤。设定帧数量阈值的设置可以根据需要随意设置,本申请实施例在此不作限定。
步骤S805,采用第二解析器解析获得第3帧视频压缩数据,并将第3帧视频压缩数据存储至视频缓冲区。
在查找到第3帧视频数据后,可以采用第二解析器解析获得第3帧视频压缩数据,并将第3帧视频压缩数据存储至视频缓冲区。
步骤S806,采用第二解析器依次解析获得第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据,并将第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据存储至视频缓冲区。
可以采用第二解析器从第3帧视频数据位置处开始,依次解析第4帧视频数据、第5帧视频数据和第6帧视频数据。而由图8可知,TS中的音视频分布为:第10帧音频数据、第4帧视频数据、第11帧音频数据、第5帧视频数据、第12帧音频数据、第6帧视频数据,则第二解析器在解析过程中,如果遇到第16帧音频数据、第17帧音频数据和第18帧音频数据时,可以忽略,只解析第4帧视频数据、第5帧视频数据和第6帧视频数据,并且将解析获得的第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据存储至视频缓冲区。
步骤S807,在将解析获得的第3帧视频压缩数据、第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据存储至视频缓冲区之后,若确定第一解析器未继续将4帧音频压缩数据存储至音频缓冲区,或未继续将4帧视频压缩数据存储至视频缓冲区,则关闭第二解析器。
第二解析器在第二解析器查找并解析获得第3帧视频压缩数据,以及解析获得第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据的过程中,第一解析器一直在对TS流进行解析,并将解析获得的音频压缩数据存储至音频缓冲区或将解析获得的视频压缩数据存储至视频缓冲区。则在第二解析器将解析获得的第3帧视频压缩数据、第4帧视频压缩数据、第5帧视频压缩数据和第6帧视频压缩数据存储至视频缓冲区之后,如果确定第一解析器没有连续解析获得4帧音频压缩数据或视频压缩数据,并将4帧音频压缩数据存储至音频缓冲区或将4帧视频压缩数据存储至视频缓冲区,则关闭第二解析器。
与图3所示的传输数据的解复用方法基于同一发明构思,本申请实施例中还提供了一种传输数据的解复用装置,该传输数据的解复用装置可以布设在服务器或终端设备中。由于该装置是本申请传输数据的解复用方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图10示出了本申请实施例提供的一种传输数据的解复用装置的结构示意图,如图10所示,该传输数据的解复用装置包括数据流接收单元1001、数据解析单元1002和数据查找单元1003。
其中,数据流接收单元1001,用于接收传输数据流,传输数据流中包括间隔排列的两种不同数据类型的传输数据;
数据解析单元1002,用于采用第一解析器对传输数据流进行解析,每解析获得一帧传输数据,将一帧传输数据存储至相应的数据缓冲区,一帧传输数据为第一类型传输数据或第二类型传输数据;
数据查找单元1003,用于若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用第二解析器在传输数据流中,查找并解析获得与M帧第一类型传输数据相匹配的第二类型传输数据;M为预设自然数。
在一种可选的实施例中,数据查找单元1003,具体用于:
确定M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳;
采用第二解析器在传输数据流中,查找位于M帧第一类型传输数据之后的,与第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并解析获得第二类型数据;
采用第二解析器依次解析获得,与M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据。
在一种可选的实施例中,数据查找单元1003,还用于:
采用第二解析器在位于M帧第一类型传输数据之后的传输数据流中,按照设定帧数量阈值,依次获取传输数据,其中,每获得一帧传输数据,执行如下操作:
若当前获取的一帧传输数据为第二类型传输数据,则采用第二解析器,确定当前获取的第二类型传输数据的时间戳;
若当前获取的第二类型传输数据的时间戳与第1帧第一类型传输数据的时间戳相同,则执行解析当前获取的第二类型传输数据的步骤。
在一种可选的实施例中,数据查找单元1003,还用于:
针对位于与第1帧第一类型传输数据相匹配的第二类型传输数据之后的各帧传输数据,分别执行如下操作:若确定一帧传输数据为第一类型数据,则舍弃一帧传输数据;若确定一帧传输数据为第二类型数据,则采用第二解析器解析获得一帧传输数据;各帧传输数据中的最后一帧传输数据为,与第M帧第一类型传输数据相匹配的第二类型传输数据。
在一种可选的实施例中,M帧通过如下方式确定:
根据数据缓冲区的存储容量和传输数据流的传输速率,确定数据缓冲区的存储帧数量;
选取小于存储帧数量的数值作为M帧。
在一种可选的实施例中,如图11所示,上述传输数据的解复用装置还可以包括解析器关闭单元1101,用于:
在解析获得与M帧第一类型传输数据相匹配的第二类型传输数据之后,若确定第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭第二解析器。
与上述方法实施例和装置实施例基于同一发明构思,本申请实施例中还提供了一种电子设备。
在一种实施例中,电子设备可以是服务器,如图1所示的服务器100。在该实施例中,电子设备的结构可以如图12所示,包括存储器1201,通讯模块1203以及一个或多个处理器1202。
存储器1201,用于存储处理器1202执行的计算机程序。存储器1201可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
存储器1201可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1201也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1201是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1201可以是上述存储器的组合。
处理器1202,可以包括一个或多个中央处理单元(central processing unit,CPU)或者为数字处理单元等等。处理器1202,用于调用存储器1201中存储的计算机程序时实现上述传输数据的解复用方法。
通讯模块1203用于与终端设备和其他电子设备进行通信。如果电子设备为服务器,则服务器可以通过通讯模块1203接收终端设备发送的传输数据流。
本申请实施例中不限定上述存储器1201、通讯模块1203和处理器1202之间的具体连接介质。本公开实施例在图12中以存储器1201和处理器1202之间通过总线1204连接,总线1204在图12中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线1204可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在另一种实施例中,电子设备可以是手机、平板电脑、POS(Point of Sales,销售终端)、车载电脑、智能穿戴设备、PC机等任意电子设备,示例性地,该电子设备也可以是图1中所示的终端设备300。
图13示出了一种本申请实施例提供的电子设备的结构框图。如图13所示,该电子设备包括:射频(Radio Frequency,RF)电路1310、存储器1320、输入单元1330、显示单元1340、传感器1350、音频电路1360、无线保真(wireless fidelity,WiFi)模块1370、处理器1380等部件。本领域技术人员可以理解,图13中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图13对电子设备的各个构成部件进行具体的介绍:
RF电路1310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1380处理;另外,将设计上行的数据发送给基站。
存储器1320可用于存储软件程序以及模块,如本申请实施例中的传输数据的解复用方法以及装置对应的程序指令/模块,处理器1380通过运行存储在存储器1320的软件程序以及模块,从而执行电子设备的各种功能应用以及数据处理,如本申请实施例提供的传输数据的解复用方法。存储器1320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器1320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1330可用于接收用户输入的数字或字符信息,以及产生与终端的用户设置以及功能控制有关的键信号输入。
可选的,输入单元1330可包括触控面板1331以及其他输入设备1332。
其中,触控面板1331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1331上或在触控面板1331附近的操作),并根据预先设定的程式实现相应的操作,如用户点击功能模块的快捷标识的操作等。可选的,触控面板1331可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1380,并能接收处理器1380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1331。
可选的,其他输入设备1332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1340可用于显示由用户输入的信息或展示给用户的界面信息以及电子设备的各种菜单。显示单元1340即为终端设备的显示系统,用于呈现界面,如显示桌面、应用的操作界面或直播应用的操作界面等。
显示单元1340可以包括显示面板1341。可选的,显示面板1341可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
进一步的,触控面板1331可覆盖显示面板1341,当触控面板1331检测到在其上或附近的触摸操作后,传送给处理器1380以确定触摸事件的类型,随后处理器1380根据触摸事件的类型在显示面板1341上提供相应的界面输出。
虽然在图13中,触控面板1331与显示面板1341是作为两个独立的部件来实现电子设备的输入和输入功能,但是在某些实施例中,可以将触控面板1331与显示面板1341集成而实现终端的输入和输出功能。
电子设备还可包括至少一种传感器1350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1341的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板1341的背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1360、扬声器1361,传声器1362可提供用户与电子设备之间的音频接口。音频电路1360可将接收到的音频数据转换后的电信号,传输到扬声器1361,由扬声器1361转换为声音信号输出;另一方面,传声器1362将收集的声音信号转换为电信号,由音频电路1360接收后转换为音频数据,再将音频数据输出处理器1380处理后,经RF电路1310以发送给比如另一电子设备,或者将音频数据输出至存储器1320以便进一步处理。
WiFi属于短距离无线传输技术,电子设备通过WiFi模块1370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图13示出了WiFi模块1370,但是可以理解的是,其并不属于电子设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1380是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器1320内的软件程序和/或模块,以及调用存储在存储器1320内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器1380可包括一个或多个处理单元;可选的,处理器1380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用及应用内部的功能模块等软件程序,如本申请实施例提供的传输数据的解复用方法等。调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1380中。
可以理解,图13所示的结构仅为示意,电子设备还可包括比图13中所示更多或者更少的组件,或者具有与图13所示不同的配置。图13中所示的各组件可以采用硬件、软件或其组合实现。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的传输数据的解复用方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种传输数据的解复用方法,其特征在于,所述方法包括:
接收传输数据流,所述传输数据流中包括间隔排列的两种不同数据类型的传输数据;
采用第一解析器对所述传输数据流进行解析,每解析获得一帧传输数据,将所述一帧传输数据存储至相应的数据缓冲区,所述一帧传输数据为第一类型传输数据或第二类型传输数据;
若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用所述第二解析器在所述传输数据流中,查找并解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据;所述M为预设自然数。
2.根据权利要求1所述的方法,其特征在于,所述采用所述第二解析器在所述传输数据流中,查找并解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据,包括:
确定所述M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳;
采用所述第二解析器在所述传输数据流中,查找位于所述M帧第一类型传输数据之后的,与所述第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并解析获得所述第二类型数据;
采用所述第二解析器依次解析获得,与所述M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据。
3.根据权利要求2所述的方法,其特征在于,所述采用所述第二解析器在所述传输数据流中,查找位于所述M帧第一类型传输数据之后的,与所述第1帧第一类型传输数据的时间戳相同的第二类型传输数据,包括:
采用所述第二解析器在位于所述M帧第一类型传输数据之后的传输数据流中,按照设定帧数量阈值,依次获取传输数据,其中,每获得一帧传输数据,执行如下操作:
若当前获取的一帧传输数据为第二类型传输数据,则采用所述第二解析器,确定当前获取的第二类型传输数据的时间戳;
若所述当前获取的第二类型传输数据的时间戳与所述第1帧第一类型传输数据的时间戳相同,则执行解析所述当前获取的第二类型传输数据的步骤。
4.根据权利要求2所述的方法,其特征在于,所述采用所述第二解析器依次解析获得,与所述M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据,包括:
针对位于与所述第1帧第一类型传输数据相匹配的第二类型传输数据之后的各帧传输数据,分别执行如下操作:若确定一帧传输数据为第一类型数据,则舍弃所述一帧传输数据;若确定所述一帧传输数据为第二类型数据,则采用所述第二解析器解析获得所述一帧传输数据;所述各帧传输数据中的最后一帧传输数据为,与所述第M帧第一类型传输数据相匹配的第二类型传输数据。
5.根据权利要求1所述的方法,其特征在于,所述M帧通过如下方式确定:
根据所述数据缓冲区的存储容量和传输数据流的传输速率,确定所述数据缓冲区的存储帧数量;
选取小于所述存储帧数量的数值作为所述M帧。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据之后,若确定所述第一解析器未继续将M帧第一类型传输数据存储至相应的数据缓冲区,则关闭所述第二解析器。
7.一种传输数据的解复用装置,其特征在于,所述装置包括:
数据流接收单元,用于接收传输数据流,所述传输数据流中包括间隔排列的两种不同数据类型的传输数据;
数据解析单元,用于采用第一解析器对所述传输数据流进行解析,每解析获得一帧传输数据,将所述一帧传输数据存储至相应的数据缓冲区,所述一帧传输数据为第一类型传输数据或第二类型传输数据;
数据查找单元,用于若连续将M帧第一类型传输数据存储至相应的数据缓冲区,则开启第二解析器,采用所述第二解析器在所述传输数据流中,查找并解析获得与所述M帧第一类型传输数据相匹配的第二类型传输数据;所述M为预设自然数。
8.根据权利要求7所述的装置,其特征在于,所述数据查找单元,具体用于:
确定所述M帧第一类型传输数据中,第1帧第一类型传输数据的时间戳;
采用所述第二解析器在所述传输数据流中,查找位于所述M帧第一类型传输数据之后的,与所述第1帧第一类型传输数据的时间戳相同的第二类型传输数据,并解析获得所述第二类型数据;
采用所述第二解析器依次解析获得,与所述M帧中非第1帧的其他帧第一类型传输数据相匹配的第二类型传输数据。
9.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现权利要求1~6中任一项所述的方法。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现权利要求1~6中任一项所述的方法。
CN202110635172.6A 2021-06-08 2021-06-08 传输数据的解复用方法、装置、存储介质和电子设备 Pending CN115460454A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110635172.6A CN115460454A (zh) 2021-06-08 2021-06-08 传输数据的解复用方法、装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110635172.6A CN115460454A (zh) 2021-06-08 2021-06-08 传输数据的解复用方法、装置、存储介质和电子设备

Publications (1)

Publication Number Publication Date
CN115460454A true CN115460454A (zh) 2022-12-09

Family

ID=84294671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110635172.6A Pending CN115460454A (zh) 2021-06-08 2021-06-08 传输数据的解复用方法、装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN115460454A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665141A (zh) * 2012-05-16 2012-09-12 哈尔滨工业大学深圳研究生院 一种基于rtp封装的avs音视频预同步方法
CN108769786A (zh) * 2018-05-25 2018-11-06 网宿科技股份有限公司 一种合成音视频数据流的方法和装置
CN109963184A (zh) * 2017-12-14 2019-07-02 阿里巴巴集团控股有限公司 一种音视频网络播放的方法、装置以及电子设备
CN111654736A (zh) * 2020-06-10 2020-09-11 北京百度网讯科技有限公司 音视频同步误差的确定方法、装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102665141A (zh) * 2012-05-16 2012-09-12 哈尔滨工业大学深圳研究生院 一种基于rtp封装的avs音视频预同步方法
CN109963184A (zh) * 2017-12-14 2019-07-02 阿里巴巴集团控股有限公司 一种音视频网络播放的方法、装置以及电子设备
CN108769786A (zh) * 2018-05-25 2018-11-06 网宿科技股份有限公司 一种合成音视频数据流的方法和装置
WO2019223040A1 (zh) * 2018-05-25 2019-11-28 网宿科技股份有限公司 一种合成音视频数据流的方法和装置
CN111654736A (zh) * 2020-06-10 2020-09-11 北京百度网讯科技有限公司 音视频同步误差的确定方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN109257646B (zh) 视频处理方法、装置、电子设备及计算机可读介质
CN109640188B (zh) 视频预览方法、装置、电子设备及计算机可读存储介质
CN107454416B (zh) 视频流发送方法和装置
CN108966004B (zh) 一种视频处理方法及终端
CN104618794B (zh) 播放视频的方法和装置
CN110248233B (zh) 一种音视频播放方法、装置、设备及存储介质
WO2010008230A2 (en) Apparatus and method for providing user interface service in a multimedia system
WO2019015395A1 (zh) 内存管理方法、装置、电子设备及存储介质
KR20140111859A (ko) 콘텐트 공유 방법 및 이를 위한 디바이스
US20170324998A1 (en) Method for playing video, client, and computer storage medium
CN108900855B (zh) 直播内容录制方法、装置、计算机可读存储介质及服务器
WO2018036352A1 (zh) 视频数据的编解码方法、装置、系统及存储介质
CN109830248B (zh) 一种音频录制方法及终端设备
JP2023522092A (ja) インタラクション記録生成方法、装置、デバイス及び媒体
CN111510755A (zh) 音视频的切换方法、装置、计算机设备及可读存储介质
US11671678B2 (en) Method and device, equipment, and storage medium for data processing
CN109144723B (zh) 一种分配存储空间的方法和终端
CN113395592A (zh) 一种视频播放控制方法、装置、设备及计算机存储介质
CN113873187B (zh) 跨终端录屏方法、终端设备及存储介质
CN106792125A (zh) 一种视频播放方法及其终端、系统
CN107277592B (zh) 基于嵌入式平台的多媒体数据播放方法、装置及存储介质
CN110198452B (zh) 一种直播视频的预览方法、装置及系统
CN115460454A (zh) 传输数据的解复用方法、装置、存储介质和电子设备
CN113395585B (zh) 视频检测方法、视频播放控制方法、装置和电子设备
KR102589852B1 (ko) 영상 표시 장치 및 영상 표시 방법

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