CN116668415A - 流媒体数据处理方法及系统 - Google Patents

流媒体数据处理方法及系统 Download PDF

Info

Publication number
CN116668415A
CN116668415A CN202210618490.6A CN202210618490A CN116668415A CN 116668415 A CN116668415 A CN 116668415A CN 202210618490 A CN202210618490 A CN 202210618490A CN 116668415 A CN116668415 A CN 116668415A
Authority
CN
China
Prior art keywords
code stream
data
stream data
streaming media
thread
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
CN202210618490.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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN202210618490.6A priority Critical patent/CN116668415A/zh
Priority to PCT/CN2023/093058 priority patent/WO2023231723A1/zh
Publication of CN116668415A publication Critical patent/CN116668415A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2225Local VOD servers
    • 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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种流媒体数据处理方法及系统,通过将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区,提升了流媒体数据接收的性能;通过令收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,提高了流媒体数据的处理转发性能,达到了提升流媒体数据接收与转发速度的效果。

Description

流媒体数据处理方法及系统
技术领域
本发明实施例涉及流媒体数据处理领域,具体而言,涉及一种流媒体数据处理方法及系统。
背景技术
目前,第五代移动通信技术(5G)正逐步进入商用时代,这对全球的音视频行业带来了深刻的影响与变革,也使得服务于视频会议、视频物联、视频中台等产品和业务的流媒体系统成为了信息传播的重要机制。5G对于速度的量变将会推动整个产业发生质的变化,也将助力流媒体系统加速发展。
总的来说,行业内的流媒体系统以直播、录像、回放等为主要功能,其接收和转发性能成为衡量流媒体系统优劣的一个重要指标。目前,业界的接收和转发速度能达到2Gbps,但是再往上提升就显得困难重重了,在高并发大流量的情况下,其处理能力将会极大受限:如接收数据包的速度不够快,导致了系统层面的丢失;如转发处理数据包的速度不够快,导致了应用层面的丢失,流媒体系统的接收和转发性能成为了制约其发展的重要瓶颈。
发明内容
本发明实施例提供了一种流媒体数据处理方法及系统,以至少解决相关技术中在大流量情况下,流媒体数据接收和处理转发链路数据丢包的问题。
根据本发明的一个实施例,提供了一种流媒体数据处理方法,包括:将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据。
在一个示例性实施例中,所述码流数据和所述消息信令在所述同一线程任务通道中分别通过套接字描述文件符和命名管道描述文件符进行区分。
在一个示例性实施例中,所述收包线程从所述系统缓存区获取所述码流数据包括:所述码流数据的数据包结构体使用指针进行传递,所述收包线程采用异步IO事件触发机制从所述系统缓存区获取所述码流数据,并根据所述码流数据的流量大小调整取包数量和最大事件数。
在一个示例性实施例中,所述收包线程从所述系统缓存区获取所述码流数据,还包括:采用多收包线程从所述系统缓存区获取所述码流数据,并发送至多核CPU中指定的CPU处理,并提升所述收包线程的优先级。
在一个示例性实施例中,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据包括:所述收包线程和业务线程以流媒体内部缓存区为中心,采用生产者/消费者模式传递所述码流数据的数据包,其中,所述收包线程为生产者,所述业务线程为消费者。
在一个示例性实施例中,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,还包括:将所述不同类型的业务线程融合到同一所述收包线程和CPU处理;根据所述不同类型的业务线程的任务数量,选择最小载荷的所述收包线程进行处理。
在一个示例性实施例中,所述流媒体内部缓存区为环形资源池。
在一个示例性实施例中,在所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据之后,还包括:所述不同类型的业务线程将所述码流数据存入存储设备进行数据持久化存储。
根据本发明的另一个实施例,提供了一种流媒体数据处理系统,包括:数据处理模块,用于将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;数据获取模块,用于从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;数据读取模块,用于根据业务线程的不同类型从所述流媒体内部缓存区读取所述码流数据。
在一个示例性实施例中,所述数据处理模块包括以下至少之一:第一数据处理单元,用于将所述码流数据按套接字描述文件符整合进入所述线程任务通道;第二数据处理单元,用于将所述消息信令按命名管道描述文件符整合进入所述线程任务通道。
在一个示例性实施例中,所述数据读取模块包括以下至少之一:第一读取单元,用于在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型立即从所述流媒体内部缓存区读取所述码流数据;第二读取单元,在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型同时从所述流媒体内部缓存区读取所述码流数据;第三读取单元,在所述码流数据存入所述流媒体内部缓存区后,所述业务线程的不同类型的需要随时从所述流媒体内部缓存区读取所述码流数据。
在一个示例性实施例中,还包括:数据存储模块,用于将所述数据读取模块读取的所述码流数据存入存储设备。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过上述实施例,通过将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区,提升了流媒体数据接收的性能;通过令收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,提高了流媒体数据的处理转发性能,达到了提升流媒体数据接收与转发速度的效果。
附图说明
图1是本发明实施例的一种流媒体数据处理方法的移动终端的硬件结构框图;
图2是根据本发明实施例的一种流媒体数据处理方法运行网络架构图;
图3是根据本发明实施例的流媒体数据处理方法的流程图;
图4是根据本发明实施例的业务线程读取码流数据的流程图;
图5是根据本发明实施例的流媒体数据处理方法的流程图;
图6是根据本发明实施例的流媒体数据处理系统的结构框图;
图7是根据本发明实施例的数据处理模块的结构框图;
图8是根据本发明实施例的数据读取模块的结构框图;
图9是根据本发明实施例的流媒体数据处理系统的结构框图;
图10是根据本发明场景实施例的流媒体数据处理的流程图;
图11是根据本发明场景实施例的线程管理机制示意图;
图12是根据本发明场景实施例的收包线程采用纵横取包技术原理示意图;
图13是根据本发明场景实施例的业务线程融合生产者消费者技术原理示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种流媒体数据处理方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的流媒体数据处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
本申请实施例可以运行于图2所示的网络架构上,如图2所示,该网络架构运行于服务器上,该服务器可以是物理机,可以是虚机,也可以Docker容器化环境。该网络架构分为内核空间和用户空间两部分,其中,内核空间指操作系统和驱动程序所运行的环境。码流数据进入服务器之后会首先进入到内核空间。用户空间指流媒体所运行的环境,流媒体会将码流数据会从内核空间拿到用户空间。内核空间与用户空间之间的是Socket Buffer系统缓存区,系统缓存区用于实现码流数据从内核空间过度到用户空间时的临时缓存。用户空间中包括流媒体各功能模块:收包线程RECEIVE、流媒体内部缓存区rBuffer、录像线程RECORD、存储IO缓冲区IO Buffer、直播线程PLAY。
在本实施例中提供了一种运行于上述移动终端或网络架构的流媒体数据处理方法,图3是根据本发明实施例的流媒体数据处理方法的流程图,如图3所示,该流程包括如下步骤:
步骤S302,将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;
步骤S304,收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;
步骤S306,不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据。
通过上述步骤,通过将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区,提升了流媒体数据接收的性能;通过令收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,提高了流媒体数据的处理转发性能,达到了提升流媒体数据接收与转发速度的效果。
其中,上述步骤的执行主体可以为基站、终端等,但不限于此。
在一个示例性实施例中,所述码流数据和所述消息信令在所述同一线程任务通道中分别通过套接字描述文件符和命名管道描述文件符进行区分。
在一个示例性实施例中,所述收包线程从所述系统缓存区获取所述码流数据包括:所述码流数据的数据包结构体使用指针进行传递,所述收包线程采用异步IO事件触发机制从所述系统缓存区获取所述码流数据,并根据所述码流数据的流量大小调整取包数量和最大事件数。
在一个示例性实施例中,所述收包线程从所述系统缓存区获取所述码流数据,还包括:采用多收包线程从所述系统缓存区获取所述码流数据,并发送至多核CPU中指定的CPU处理,并提升所述收包线程的优先级。
在一个示例性实施例中,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据包括:所述收包线程和业务线程以流媒体内部缓存区为中心,采用生产者/消费者模式传递所述码流数据的数据包,其中,所述收包线程为生产者,所述业务线程为消费者。
在一个示例性实施例中,图4是根据本发明实施例的业务线程读取码流数据的流程图,如图4所示,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,还包括以下步骤:
步骤S402,将所述不同类型的业务线程融合到同一所述收包线程和CPU处理;
步骤S404,根据所述不同类型的业务线程的任务数量,选择最小载荷的所述收包线程进行处理。
在一个示例性实施例中,所述流媒体内部缓存区为环形资源池。
在一个示例性实施例中,图5是根据本发明实施例的流媒体数据处理方法的流程图,如图5所示,在所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据之后,还包括:所述不同类型的业务线程将所述码流数据存入存储设备进行数据持久化存储,即该流程包括以下步骤:
步骤S502,将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;
步骤S504,收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;
步骤S506,不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据;
步骤S508,所述不同类型的业务线程将所述码流数据存入存储设备进行数据持久化存储。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种流媒体数据处理系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的流媒体数据处理系统的结构框图,如图6所示,该流媒体数据处理系统60包括:数据处理模块610,用于将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;数据获取模块620,用于从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;数据读取模块630,用于根据业务线程的不同类型从所述流媒体内部缓存区读取所述码流数据。
在一个示例性实施例中,图7是根据本发明实施例的数据处理模块的结构框图,如图7所示,该数据处理模块70把图6所示的流媒体数据处理系统60中的数据处理模块610分为两部分,分别是:第一数据处理单元710,用于将所述码流数据按套接字描述文件符整合进入所述线程任务通道;第二数据处理单元720,用于将所述消息信令按命名管道描述文件符整合进入所述线程任务通道。
本领域的普通技术人员应该知道,根据数据内容的不同,在实际实施过程中,可以将数据处理模块进一步细分为多个数据处理单元,这里不做限制。
在一个示例性实施例中,图8是根据本发明实施例的数据读取模块的结构框图,如图8所示,该数据读取模块80把图6所示的流媒体数据处理系统60中的数据读取模块630分为三部分,分别是:第一读取单元810,用于在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型立即从所述流媒体内部缓存区读取所述码流数据;第二读取单元820,在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型同时从所述流媒体内部缓存区读取所述码流数据;第三读取单元830,在所述码流数据存入所述流媒体内部缓存区后,所述业务线程的不同类型的需要随时从所述流媒体内部缓存区读取所述码流数据。
本领域的普通技术人员应该知道,根据数据内容的不同,在实际实施过程中,可以将数据读取模块进一步细分为多个数据读取单元,这里不做限制。
在一个示例性实施例中,图9是根据本发明实施例的流媒体数据处理系统的结构框图,如图9所示,该流媒体数据处理系统90除了包括图6中所示的各个模块外,还包括:数据存储模块910,用于将所述数据读取模块读取的所述码流数据存入存储设备。
本领域的普通技术人员应该知道,上述实施例所涉及的各个模块、单元是可以组合到一起,或者根据需要进行部分组合或者集成到一个或者多个装置、系统上,只要能够实现相应的功能即可。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
为了使得本领域的技术人员更好地理解本发明的技术方案,下面将结合具体的场景实施例对本发明的技术方案进行说明。
场景实施例一
图10是根据本发明场景实施例的流媒体数据处理的流程图,如图10所示,以流媒体数据传输模型为例;首先,在全链路建立线程管理机制,提出通道趋同技术,合理管理和优化线程;接着,流媒体收包线程从操作系统缓存区取出数据包,提出纵横取包技术,提升收包阶段的性能;接着,收包线程将取出的数据包存入流媒体环形缓存区;接着,流媒体业务线程从环形缓存区复制数据包到相关业务进行数据处理,提出融合生产者消费者技术,提升数据转发性能;最后,将数据进行持久化存储。下面结合图10所示的具体步骤做详细说明:
步骤S1002,建立线程管理机制;
在流媒体数据传输的全链路建立线程管理机制,对线程进行合理管理和优化,减少系统阻塞,提升传输性能。
图11是根据本发明场景实施例的线程管理机制示意图,如图11所示,将数据包码流与消息信令整合到同一接收线程中处理并进行统一管理,但又在进入通道进行区分,信令走命名管道文件fd,码流走socket fd。从而避免使用锁的方式来防止多线程访问,减小了信息管理的投入,且减少了CPU阻塞和代码冗余。线程任务通道。
步骤S1004,收包线程采用纵横取包技术接收码流数据;
媒体数据在进入流媒体模块之前,会先达到操作系统缓存区。流媒体的收包线程RECEIVE,相当于是码流数据的入口,需要负责从系统缓存区中拿取到码流数据包,即接收数据。
为了提升该链路的性能,在纵向上挖掘接收线程的最大处理性能,在横向上充分调度硬件和系统资源,纵横结合有利于提升收包线程阶段的性能。
图12是根据本发明场景实施例的收包线程采用纵横取包技术原理示意图,如图12所示,纵向上:数据包结构体使用指针进行传递,避免大的内存拷贝;收包线程RECEIVE采用异步IO事件触发机制,根据流量大小调整取包数量、最大事件数;从而提升单个线程取包能力。
横向上:增大接收线程数量,采用多线程与系统多核CPU亲缘性策略,让收包线程RECEIVE发送给指定的CPU核来处理;并且提升收包线程优先级;从而加大利用系统内核资源,优先快速处理。
步骤S1006,码流数据存入流媒体内部缓存区;
收包线程取出数据后,会将数据包存入流媒体内部环形缓存区rBuffer。rBuffer会使用资源池,循环使用无须增加存储量,避免了内存碎片。该模块负责将收包线程RECEIVE从系统缓存区取出的数据包进行临时缓存。这相当于是对数据包的备份,方便后续的不同业务可同时读取数据,比如RECORD存储、PLAY转发,做到边存边播。
步骤S1008,业务线程采用融合生产者消费者技术处理码流数据;
业务线程在逻辑上位于rbuffer之后,各种业务线程可同时读取rbuffer中的数据,用于各自的业务流程,比如RECORD线程存储、PLAY线程转发,等等。
为了提升该链路的性能,利用生产者消费者模式将收包线程作为生产者,将业务线程作为消费者,并且将这些工作线程统一到实际相同的线程,用于提升rbuffer模块性能,提升业务线程处理数据性能。
图13是根据本发明场景实施例的业务线程融合生产者消费者技术原理示意图,如图13所示,把rbuffer视作为中心点,将收包线程RECEIVE看作生产者,将业务线程RECORD、PLAY等看作消费者,通过rBuffer将数据包从生产者RECEIVE线程向消费者RECORD、PLAY等线程传递,该技术以异步调用的方式解耦不同的工作线程,减小线程之间的相互影响,减小了耗时延迟。
在此技术基础上,将各个抽象的工作线程看作工作任务统一融合到实际相同的线程和CPU上进行处理,同时在任务进行分配时根据当前线程的任务数量,把任务分配到载荷最小的线程上,使硬件资源得到更为充分的利用,并减少操作系统创建线程与管理线程的额外消耗。
步骤S1010,码流数据持久化存储。
该链路为码流数据传输的末端,经过接收转发等处理之后,需要放到存储设备进行持久化。如图2所示,录像线程RECORD从rBuffer中读到数据包后,先将数据包写入IOBuffer缓存区,待文件关闭或者缓存区满时就将缓存区数据刷入本地存储或者对象存储,以此来减轻读写IO压力。
综上,本发明提出了一种流媒体数据处理方法及系统,理论上,在万兆带宽下(10Gbps)能够以满带宽的速度处理数据码流。本发明极大提高了流媒体系统的接收转发性能,能够为音视频相关的产业极大地节约资源和成本。针对大流量情况下,流媒体数据接收和处理转发链路数据丢包的问题,本发明首先,在全链路建立线程管理机制,将码流与信令整合到同一接收线程中处理并进行统一管理,但又在进入通道进行区分,避免使用锁的方式来防止多线程访问,有利于优化线程管理,减少系统阻塞。即提出通道趋同技术对线程进行合理管理和优化。然后,在纵向上,提升单个收包线程取包性能;在横向上,批量扩大利用内核资源,有利于加快从系统缓存区中拿取码流数据包并存入流媒体内部缓存区。即提出纵横取包技术来提升数据接收阶段性能。最后,以异步调用的方式解耦不同的工作线程,减小线程之间的相互影响和耗时延迟;并且将抽象线程融合到实际相同的线程和内核上处理,减少线程的额外消耗,充分利用系统资源,有利于加快内部缓存模块数据处理。即提出融合生产者消费者技术来提升数据处理阶段性能。
本发明适用于基于流式数据处理的音视频相关产业,如视频会议、视频物联、视频中台等。具体可用于接入路数和流量庞大的高并发场景,可用于高性能数据转发,可用于无丢包需求的业务等。本发明的数据流链路流程及分析思想、分阶段性能优化技术、方案设计等具有明显的特征。通过抓包、业务调用链追踪工具等手段实现与本发明类似或者相同的目的,均应在本发明保护范围之内。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种流媒体数据处理方法,其特征在于,包括:
将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;
收包线程从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;
不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据。
2.根据权利要求1所述的方法,其特征在于,所述码流数据和所述消息信令在所述同一线程任务通道中分别通过套接字描述文件符和命名管道描述文件符进行区分。
3.根据权利要求1所述的方法,其特征在于,所述收包线程从所述系统缓存区获取所述码流数据包括:
所述码流数据的数据包结构体使用指针进行传递,所述收包线程采用异步IO事件触发机制从所述系统缓存区获取所述码流数据,并根据所述码流数据的流量大小调整取包数量和最大事件数。
4.根据权利要求1所述的方法,其特征在于,所述收包线程从所述系统缓存区获取所述码流数据,还包括:
采用多收包线程从所述系统缓存区获取所述码流数据,并发送至多核CPU中指定的CPU处理,并提升所述收包线程的优先级。
5.根据权利要求4所述的方法,其特征在于,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据包括:
所述收包线程和业务线程以流媒体内部缓存区为中心,采用生产者/消费者模式传递所述码流数据的数据包,其中,所述收包线程为生产者,所述业务线程为消费者。
6.根据权利要求5所述的方法,其特征在于,所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据,还包括:
将所述不同类型的业务线程融合到同一所述收包线程和CPU处理;
根据所述不同类型的业务线程的任务数量,选择最小载荷的所述收包线程进行处理。
7.根据权利要求6所述的方法,其特征在于,所述流媒体内部缓存区为环形资源池。
8.根据权利要求1所述的方法,其特征在于,在所述不同类型的业务线程从所述流媒体内部缓存区读取所述码流数据之后,还包括:
所述不同类型的业务线程将所述码流数据存入存储设备进行数据持久化存储。
9.一种流媒体数据处理系统,其特征在于,包括:
数据处理模块,用于将码流数据和消息信令按不同的描述文件符整合至同一线程任务通道,并缓存至系统缓存区;
数据获取模块,用于从所述系统缓存区获取所述码流数据,并存入流媒体内部缓存区;
数据读取模块,用于根据业务线程的不同类型从所述流媒体内部缓存区读取所述码流数据。
10.根据权利要求9所述的系统,其特征在于,所述数据处理模块包括以下至少之一:
第一数据处理单元,用于将所述码流数据按套接字描述文件符整合进入所述线程任务通道;
第二数据处理单元,用于将所述消息信令按命名管道描述文件符整合进入所述线程任务通道。
11.根据权利要求9所述的系统,其特征在于,所述数据读取模块包括以下至少之一:
第一读取单元,用于在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型立即从所述流媒体内部缓存区读取所述码流数据;
第二读取单元,在所述码流数据存入所述流媒体内部缓存区后,根据所述业务线程的不同类型同时从所述流媒体内部缓存区读取所述码流数据;
第三读取单元,在所述码流数据存入所述流媒体内部缓存区后,所述业务线程的不同类型的需要随时从所述流媒体内部缓存区读取所述码流数据。
12.根据权利要求9所述的系统,其特征在于,还包括:
数据存储模块,用于将所述数据读取模块读取的所述码流数据存入存储设备。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的方法。
14.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至8任一项中所述的方法。
CN202210618490.6A 2022-06-01 2022-06-01 流媒体数据处理方法及系统 Pending CN116668415A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210618490.6A CN116668415A (zh) 2022-06-01 2022-06-01 流媒体数据处理方法及系统
PCT/CN2023/093058 WO2023231723A1 (zh) 2022-06-01 2023-05-09 流媒体数据处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210618490.6A CN116668415A (zh) 2022-06-01 2022-06-01 流媒体数据处理方法及系统

Publications (1)

Publication Number Publication Date
CN116668415A true CN116668415A (zh) 2023-08-29

Family

ID=87726613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210618490.6A Pending CN116668415A (zh) 2022-06-01 2022-06-01 流媒体数据处理方法及系统

Country Status (2)

Country Link
CN (1) CN116668415A (zh)
WO (1) WO2023231723A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962512A (zh) * 2023-09-20 2023-10-27 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302372A (zh) * 2015-06-12 2017-01-04 中兴通讯股份有限公司 网络媒体流收包方法、装置及系统
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
CN112995753A (zh) * 2019-12-16 2021-06-18 中兴通讯股份有限公司 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112333475A (zh) * 2020-10-29 2021-02-05 京东方科技集团股份有限公司 流媒体数据的处理方法、处理系统和存储服务器
CN113553346B (zh) * 2021-07-22 2022-08-16 中国电子科技集团公司第十五研究所 大规模实时数据流一体化处理、转发和存储方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302372A (zh) * 2015-06-12 2017-01-04 中兴通讯股份有限公司 网络媒体流收包方法、装置及系统
CN108270732A (zh) * 2016-12-30 2018-07-10 北京视联动力国际信息技术有限公司 一种流媒体处理方法及系统
CN112995753A (zh) * 2019-12-16 2021-06-18 中兴通讯股份有限公司 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962512A (zh) * 2023-09-20 2023-10-27 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置
CN116962512B (zh) * 2023-09-20 2024-01-05 北京信安世纪科技股份有限公司 报文处理方法、设备、存储介质和装置

Also Published As

Publication number Publication date
WO2023231723A1 (zh) 2023-12-07

Similar Documents

Publication Publication Date Title
CN108768826B (zh) 基于MQTT和Kafka高并发场景下的消息路由方法
CN113485823A (zh) 数据传输方法、装置、网络设备、存储介质
CN106021315B (zh) 一种应用程序的日志管理方法及系统
US9002969B2 (en) Distributed multimedia server system, multimedia information distribution method, and computer product
CN102694831B (zh) 移动终端流媒体数据补偿方法与系统、内容分发网络
US20150088995A1 (en) Method and apparatus for sharing contents using information of group change in content oriented network environment
CN118227343B (zh) 一种数据处理方法、系统、装置、设备、介质及产品
CN114866528A (zh) 一种基于MQTT和Websocket的数据通讯方法
WO2023231723A1 (zh) 流媒体数据处理方法及系统
CN110351202B (zh) 5g核心网流量分组方法、装置、设备和计算机存储介质
WO2021238259A1 (zh) 一种数据传输方法、装置、设备及计算机可读存储介质
CN117395307A (zh) 一种数据传输的方法、装置及存储介质
CN114844870B (zh) 一种媒体流获取方法、装置、电子设备及存储介质
CN115941907A (zh) 一种rtp数据包发送方法、系统、电子设备及存储介质
CN118018472A (zh) 一种数据传输处理方法、装置、存储介质及电子装置
CN117955959A (zh) 多媒体内容的协同传输方法、装置、设备及存储介质
CN112417015A (zh) 数据分发方法和装置、存储介质及电子装置
CN111860788A (zh) 一种基于数据流架构的神经网络计算系统及方法
CN101635669B (zh) 一种用于数据共享系统中获取数据片段的方法
CN110784368A (zh) 一种基于Memcached的数据采集方法及系统
CN110881133B (zh) 一种视频播放方法和设备
CN112511528B (zh) 流媒体分发方法、系统、服务器和存储介质
CN113342306B (zh) 一种2路音频混合方法及处理终端
CN113329076B (zh) 数据传输方法、装置及系统、计算机设备、存储介质
WO2024060720A1 (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