CN111954027A - 一种流媒体数据转码方法、计算设备及可读存储介质 - Google Patents

一种流媒体数据转码方法、计算设备及可读存储介质 Download PDF

Info

Publication number
CN111954027A
CN111954027A CN202010781992.1A CN202010781992A CN111954027A CN 111954027 A CN111954027 A CN 111954027A CN 202010781992 A CN202010781992 A CN 202010781992A CN 111954027 A CN111954027 A CN 111954027A
Authority
CN
China
Prior art keywords
audio
data
source
frame
coding format
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
CN202010781992.1A
Other languages
English (en)
Other versions
CN111954027B (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.)
Huaxia CapitaLand (Xiamen) Technology Co.,Ltd.
Original Assignee
Haolian Times Beijing 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 Haolian Times Beijing Technology Co Ltd filed Critical Haolian Times Beijing Technology Co Ltd
Priority to CN202010781992.1A priority Critical patent/CN111954027B/zh
Publication of CN111954027A publication Critical patent/CN111954027A/zh
Application granted granted Critical
Publication of CN111954027B publication Critical patent/CN111954027B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/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
    • 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/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • 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
    • H04N21/4341Demultiplexing of audio and video streams
    • 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/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
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种流媒体数据转码方法,适于在计算设备中完成,包括:接收源流媒体数据,对源流媒体数据流进行解复用,分解出源音频数据和源视频数据,所述源音频数据为第一音频编码格式;对所述源音频数据进行音频数据处理转换成目标音频数据,所述目标音频数据为第二音频编码格式;对所述源视频数据进行视频数据处理获得目标视频数据;将所述目标音频数据和目标视频数据进行复用,获得目标流媒体数据。本发明一并公开了相应的流媒体数据转码装置、计算设备及可读存储介质。

Description

一种流媒体数据转码方法、计算设备及可读存储介质
技术领域
本发明涉及音视频处理领域,尤其涉及一种流媒体数据转码方法、计算设备及可读存储介质。
背景技术
为了适应业务需求或网络状况,很多时候需要对源媒体数据的编码方式进行改变,比如,随着互联网技术的发展,视频直播、视频会议等应用越来越广泛,而网页实时通信(Web Real Time Communication,WebRTC)技术能够给用户提供网页支持的实时语音通话和视频通话,但在WebRTC被广泛应用到视频应用前,如何将WebRTC运用到已有的音视频系统中,将非webRTC数据转换成WebRTC数据,成为必须要解决的技术问题。通常这两种系统中,音频编码格式和视频编码格式存在差异,在WebRTC中,常用的音频编码格式时OPUS编码格式,而非WebRTC中多采用AAC音频编码格式,对于音频编码格式的转换,目前比较常用的是FFMPEG,但是这一音频转码技术在转码时并没有考虑编码格式的帧长度对转码的影响,尽管它提供了丰富的单独帧之间的转换函数,实际应用中音频流的数据转换还需在FFPEMG基础上做额外的处理。
另外,对于视频数据,尽管两个系统中视频编码都采用H264编码格式,但是对于视频流的处理也不尽相同,在WebRTC中,连续的I帧、SPS帧、PPS帧作为起始帧的判断标准,而非webRTC中,在SPS帧和PPS帧不变的情况下,独立的I帧就可以作为起始帧的标志,而在有些情况下,为了适应糟糕的网络状况需要丢弃一些数据帧,起始帧是不能丢弃的,需要能够确切的识别出起始帧,才能进行丢弃操作,否则有可能将起始帧丢弃,导致整个流媒体数据受损。因此,如何同步不同系统间对起始帧的处理,成为实际应用急需解决的问题。
发明内容
为此,本发明提供了一种流媒体数据转码方法、计算设备和可读存储介质,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种流媒体数据转码方法,适于在计算设备中完成,方法包括:接收源流媒体数据,对源流媒体数据流进行解复用,分解出源音频数据和源视频数据,源音频数据为第一音频编码格式;对源音频数据进行音频数据处理转换成目标音频数据,目标音频数据为第二音频编码格式;对源视频数据进行视频数据处理获得目标视频数据;将目标音频数据和目标视频数据进行复用,获得目标流媒体数据。
可选的,在根据本发明的流媒体数据转码方法中,源流媒体数据为实时传输协议数据包,实时传输协议数据包报头中包含同步源标识符,对源流媒体数据流进行解复用,分解出源音频数据和源视频数据包括:根据实时传输协议数据包报头中的同步源标识符从源流媒体数据中分解出源音频数据和源视频数据。
可选的,在根据本发明的流媒体数据转码方法中,第二音频编码格式的音频帧的帧长度为第二音频帧长度,对源音频数据进行音频数据处理转换成目标音频数据包括:解析第一音频编码格式的源音频数据包,获取源音频数据包中的第一音频帧;将第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧;将第二音频编码格式的音频帧封装成目标音频数据包,并设定目标音频数据包的时间戳,相邻的第二音频编码格式的音频帧之间的时间戳增量为相邻的第二音频编码格式的帧间的时间间距。
可选的,在根据本发明的流媒体数据转码方法中,将第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧包括:获取第一音频编码格式的音频帧中的采样点数据;从采样点数据中获取第二音频帧长度的采样点数据封装成第二音频编码格式的音频帧。
可选的,在根据本发明的流媒体数据转码方法中,将第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧包括:获取第一音频编码格式的音频帧,第一音频编码格式的音频帧的帧长度为第一音频帧长度,第一音频帧长度大于第二音频帧长度;对每一个第一编码格式的音频帧中的采样点数据进行重采样,将重采样结果封装成第二音频编码格式的音频帧,重采样结果中的采样点个数等于第二音频帧长度。
可选的,在根据本发明的流媒体数据转码方法中,对每一个第一编码格式的音频帧中的采样点数据进行重采样包括:根据第一音频帧长度和第二音频帧长度,将第一音频编码格式的音频帧中的采样点平均分成若干重采样组,其中,重采样组的个数M=N1-N2,每一个重采样组中包含的采样点数N=N1/(N1-N2),N1为第一音频帧长度,N2为第二音频帧长度;
可选的,在根据本发明的流媒体数据转码方法中,每一个重采样组中按照预定规则删除一个采样点包括:计算每一个重采样组中每个采样点数据与相邻采样点数据的平均绝对差值;将其中平均绝对差值最小的采样点删除。
可选的,在根据本发明的流媒体数据转码方法中,采样点数据与相邻采样点数据的平均绝对差值的计算公式为:Pn=(|Vn-Vn-1|+|Vn+1-Vn|)/2,其中,Pn为平均绝对值,Vn为第n个采样点的值,Vn-1为第n-1个采样点的值,Vn+1为第n+1个采样点的值。
可选的,在根据本发明的流媒体数据转码方法中,每一个重采样组中按照预定规则删除一个采样点包括:利用线性回归算法根据每个采样点数据的实际值获得采样点数据的拟合数学模型;计算每一个重采样组中每个采样点数据的实际值和数学模型值之间的绝对差值,将绝对差值最大的采样点删除。
可选的,在根据本发明的流媒体数据转码方法中,线性回归算法为最小二乘法。
可选的,在根据本发明的流媒体数据转码方法中,源视频数据和目标视频数据均采用H.264编码格式,对源视频数据进行视频数据处理获得目标视频数据包括:检测源视频数据中的帧格式;当第一次检测到帧格式为SPS帧和PPS帧时,保存SPS帧和PPS帧;每次检测到I帧时,将SPS帧和PPS帧进插入I帧前面,且时间戳与I帧时间戳一致;修改相应的视频数据包的序列号,以使序列号保持加1递增状态。
可选的,在根据本发明的流媒体数据转码方法中,第一音频编码格式为AAC编码格式,第二音频编码格式为OPUS编码格式。
可选的,在根据本发明的流媒体数据转码方法中,第一音频帧长度为1024,第二音频帧长度为960。
根据本发明的又一个方面,提供一种流媒体数据转码装置,包括:接收单元,适于接收源流媒体数据,对源流媒体数据流进行解复用,分解出源音频数据和源视频数据,源音频数据为第一音频编码格式;音频处理单元,适于对源音频数据进行音频数据处理转换成目标音频数据,目标音频数据为第二音频编码格式;视频处理单元,适于对源视频数据进行视频数据处理获得目标视频数据;复用单元,将目标音频数据和目标视频数据进行复用,获得目标流媒体数据。
根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行根据本发明的流媒体数据转码方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得移动终端执行根据本发明的流媒体数据转码方法。
根据本发明的流媒体数据转码方法,通过将流媒体信息分解成音频数据和视频数据,并分别将音频数据和视频数据进行重新编码后再合并,实现了流媒体数据的转码处理,使转码后的流媒体数据能够适应不同的传输方式、应用场景,适应不同的客户端视频应用。
尤其在WebRTC在被逐步推广过程中,将非WebRTC数据转换成WebRTC数据,包括将AAC编码格式的音频数据转换成WebRTC中常用的OPUS音频数据以及相关的视频数据的处理,根据本发明的流媒体数据转码方法,能够很好的将WebRTC应用到已有的音视频系统中,对WebRTC的推广起到了很好的促进作用。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的框图;
图2示出了根据本发明一个实施例的流媒体数据转码方法200的流程图;
图3示出了根据本发明一个实施例的音频帧转码采样点序列图;
图4示出了根据本发明一个实施例的重采样的示意图;
图5示出了根据本发明一个实施例的重采样音频帧转码采样点序列图;
图6示出了根据本发明一个实施例的流媒体数据转码装置600的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的计算设备100的示意图。在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。应用122实际上是多条程序指令,其用于指示处理器104执行相应的操作。在一些实施方式中,应用122可以布置为在操作系统上使得处理器104利用程序数据124进行操作。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备100中,应用122包括用户数据存储应用128,用户数据存储应用128包括多条程序指令,而程序数据124可以包括由数据存储装置110中获取到的各条用户行为记录。装置128可以指示处理器104执行流媒体转码方法200,对程序数据124进行分析处理,以便于将第一数据存储装置110中的用户行为记录转存于第二数据存储装置120中,以提高数据存储效率,并便于计算分析。
计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备100被配置为执行本发明一实施例的流媒体数据转码方法。
图2示出了根据本发明一个实施例的流媒体数据转码方法200的流程图。该方法始于步骤S210,获取源流媒体数据,从源流媒体数据中分解出第一音频编码格式的源音频数据和源视频数据。
根据本发明的一个实施例,将非WebRTC数据转换成WebRTC数据时,获取基于RTP(Real-time Transport Protocol)传输的非WebRTC流媒体数据,其中的音频数据和视频数据都放在RTP负载中进行传输,分别建立两个RTP会话,在RTP数据包的头部包含同步源(Synchronization source,SSRC)标识符,相同的SSRC表示是同一个会话,因此,在获取到RTP数据包时,可以根据SSRC标识符对音频数据和视频数据进行区分,比如,音频数据RTP包中的SSRC字段为SSRC1,视频数据RTP包中的的SSRC字段为SSRC2,则当获取到RTP数据包时,将同步源标识符为SSRC1的数据包识别为源音频数据,同步源标识符为SSRC2的数据包识别为源视频数据。本实施例中,获取非WebRTC流媒体数据,第一音频编码格式为AAC编码格式,源视频数据负载的编码格式为H264。
通过步骤S210分离出的源音频数据将通过步骤S220进行处理,将第一音频数据编码格式的源音频数据转换成第二音频编码格式的目标音频数据。
继续以非WebRTC流媒体数据中AAC编码格式的音频数据为例,将其转换成WebRTC中支持的OPUS编码格式的音频数据,即本实施例中的第二音频编码格式为OPUS。每一个RTP数据包中负载一个音频帧,源音频数据AAC编码格式的音频帧包含1024个采样点,而目标音频数据OPUS编码格式的音频帧包含960个采样点。
对于音频数据编码转码,本发明提供了两种方法A和B,下面分别对这两种方法对本实施例继续进行说明。
方法A:保持采样点数据不变对音频数据进行编码转换,源音频RTP数据包序列如下表所示,。
Figure BDA0002620587760000071
Figure BDA0002620587760000081
首先获取第一个RTP数据包中的1024个采样点,取前960个采样点封装成一个OPUS编码格式的音频帧,并封装到一个RTP数据包的负载中,这时,第一个AAC音频帧中还剩余的64个采样点,将这64个采样点与第二个AAC音频帧中的前896个采样点组合封装成第二个OPUS音频帧,依次类推,采样点序列图如图3所示,最终转换成的OPUS编码格式的RTP数据包序列如下表所示。
Figure BDA0002620587760000082
因为其中采样点个数不变,根据源音频帧的第一音频帧长度和目标音频帧中的第二音频帧长度,其转码前后的音频帧个数满足一定关系,本实施例中第一音频帧长度为1024,第二音频帧长度为960,则转换前后的采样点个数满足公式(1)的数据关系,其中n是被转换的AAC帧的个数,m是最终转换成的OPUS帧的个数。
n×1024=m×960 (1)
RTP数据包中的时间戳,顾名思义,表示了一个数据的产生时间,时间戳在RTP数据包序列中呈线性增长,这个时间戳并不是通常所说的数据产生时的绝对时间,而是采样时钟决定的名义上的采样时刻,采样时钟每次采样时增加1,那么每产生一个包含一个OPUS帧的RTP数据包,采样时钟将增加960,则相邻的OPUS编码格式的RTP数据包的时间戳差值为960,满足Px=Px-1+960,其中,Px为第x个RTP数据包的时间戳,Px-1为第x-1个RTP数据包的时间戳。
RTP数据包中的序列号是根据每产生一个RTP包进行加1运算,一定程度决定了数据包的先后顺序。
以上就是通过方法A完成的音频数据编码转换。
方法B:继续以AAC帧转换成OPUS帧为例,因为第一编码格式的音频帧AAC帧中的采样点个数大于第二音频编码格式OPUS,因此需要对第一编码格式AAC音频帧中的采样点数据进行重采样,将重采样结果封装成第二音频编码格式OPUS音频帧。为了实现均匀采样,又能完整保留音频信息,将第一音频帧中采样点分成若干个重采样组,重采样组的个数M=N1-N2,每一个重采样组中包含的采样点数N=N1/(N1-N2),N1为第一音频帧长度,N2为第二音频帧长度,每个重采样组中删除一个采样点。
本实施例中,AAC帧中包含1024个采样点,要将其转换成第二音频帧长度960的OPUS帧,则需要删除其中64个采样点,即对1024个采样点进行重采样,根据上述计算公式可知,每16个采样点删除一个,如何选取要删除的采样点,能够使音频信息保留的最完成,本发明也提供了两种选取方法b1和b2。
方法b1:计算每一个重采样组中每个采样点数据与相邻采样点数据的平均绝对差值,将其中平均绝对差值最小的采样点移除。绝对平均值的计算公式为:Pn=(|Vn-Vn-1|+|Vn+1-Vn|)/2,其中,Vn为第n个采样点的值,Vn-1为第n-1个采样点的值,Vn+1为第n+1个采样点的值,位于两端的采样点的绝对平均值为与其唯一相邻的采样点的差值的绝对值。
为了便于说明,根据本发明的又一实施例,比如重采样组中包含4个采样点,采样点数值依次为1,3,4,5,3,则根据平均绝对值的计算公式可得,每一个采样点的平均绝对差值分别为2、1.5、1、1.5、2,其中第三个采样点与相邻采样点的平均绝对值最小,则在重采样过程中,将删除第三个采样点。
以上就是根据采样点的平均绝对值进行重采样的过程,下面是第二种重采样的方法b2的具体实现方式。
方法b2:利用线性回归算法根据每个采样点数据的实际值获得采样点数据的拟合数学模型;计算每一个重采样组中每个采样点数据的实际值和数学模型值之间的绝对差值,将所述绝对差值最大的采样点移除。
根据本发明的一个实施例,根据局部线性回归算法,如图4所示,重采样组中有五个点,根据最小二乘法的线性回归算法拟合出的数学模型曲线为y,其中第三个采样点的值与拟合模型值之间的绝对差值最大,则将第三个采样点数据删除。
通过方法b1或b2实现的重采样的采样点序列图如图5所示。
根据步骤S210分解出的视频数据通过步骤S230进行处理,根据本发明一个实施例,源视频数据和目标视频数据都采用H264视频编码格式,但是非WebRTC数据中,以I帧作为起始帧的标志,而对于WebRTC,则以I帧和空指针的组合作为起始帧的标志。控制帧包括序列参数集(Sequence Paramater Set,SPS)帧和图像参数集(Picture Paramater Set,PPS)帧,通常情况下,这两种帧位于整个码流的起始位置,需要在第一次接收到SPS帧和PPS帧时进行存储,之后在视频数据处理中,如果检测到I帧,则将存储的SPS帧和PPS帧插入到I帧前面,另外因为插入了新的RTP数据包,需要修改RTP数据包的序列号。
根据本发明一个实施例,非webRTC视频RTP数据包序列如下表所示,其中第1针和第10帧均为I帧,其他均为P帧。
Figure BDA0002620587760000101
则处理后的视频数据包序列为:
Figure BDA0002620587760000102
Figure BDA0002620587760000111
在视频数据包的处理过程中,要保证RTP数据包的序号是按加1的顺序递增的,但是SPS帧和PPS帧的时间戳和I帧的保持一致,不需要变化。
处理完的音频数据和视频数据通过步骤S240进行合并,合并后的数据可以进行下一步的传输或播放,对于播放时的音频数据和视频数据的同步主要依据对两种流数据的顺序处理。音频数据和视频数据是交替出现在RTP的报文中,两种类型流数据的处理应当是顺序执行的,这样避免在合并过程增加额外的处理开销。
图6示出了根据本发明一个实施例的流媒体数据转码装置600的框图,适于执行流媒体数据转码方法200。如图6所示,流媒体数据转码装置600包括接收单元610、音频处理单元620、视频处理单元630和复用单元640。
接收单元610,接收获取到的源流媒体数据,并对流媒体数据进行解复用,分解出其中的源音频数据和源视频数据。
音频处理单元620,接收接收单元610分解出的第一音频编码格式的源音频数据,并将其转换成第二音频编码格式的目标音频数据。
在音频数据转码过程中,本发明提供了两种方法,一种是将第一音频编码音频帧中的采样点重新分装,生成第二音频编码格式的音频帧,在转码过程中保持采样点不变;另一种方式是对第一音频编码格式的音频帧中的采样点进行重采样,删除其中音频信息较少的采样点,将剩余的采样点封装成第二音频编码格式的采样点,保持音频帧个数不变。
视频处理单元630,对所述源视频数据进行视频数据处理获得目标视频数据。视频处理过程主要是对视频数据起始帧的处理,对起始帧的处理可以使视频数据在网络状况不佳时完成丢帧的处理,避免丢掉起始帧以造成整个视频数据的损坏。
复用单元640,完成将转码后的目标音频数据和视频数据进行复用,获得适应应用需求等的目标流媒体数据。
根据本发明的流媒体数据转码方法,通过将流媒体信息分解成音频数据和视频数据,并分别将音频数据和视频数据进行重新编码后再合并,实现了流媒体数据的转码处理,使转码后的流媒体数据能够适应不同的传输方式、应用场景,适应不同的客户端视频应用。
尤其在WebRTC在被逐步推广过程中,将非WebRTC数据转换成WebRTC数据,包括将AAC编码格式的音频数据转换成WebRTC中常用的OPUS音频数据以及相关的视频数据的处理,根据本发明的流媒体数据转码方法,能够很好的将WebRTC应用到已有的音视频系统中,对WebRTC的推广起到了很好的促进作用。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的流媒体数据转码方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明还包括:
A8、如A7所述的方法,其中,所述采样点数据与相邻采样点数据的平均绝对差值的计算公式为:Pn=(|Vn-Vn-1|+|Vn+1-Vn|)/2,其中,Pn为平均绝对值,Vn为第n个采样点的值,Vn-1为第n-1个采样点的值,Vn+1为第n+1个采样点的值。
A9、如A6所述的方法,其中,所述每一个重采样组中按照预定规则删除一个采样点包括:
利用线性回归算法根据每个采样点数据的实际值获得采样点数据的拟合数学模型;
计算每一个重采样组中每个采样点数据的实际值和数学模型值之间的绝对差值,将所述绝对差值最大的采样点删除。
A10、如A9所述的方法,其中,所述线性回归算法为最小二乘法。
A11、如A1-A10中任意一项所述的方法,其中,所述源视频数据和所述目标视频数据均采用H.264编码格式,所述对所述源视频数据进行视频数据处理获得目标视频数据包括:
检测所述源视频数据中的帧格式;
当第一次检测到帧格式为SPS帧和PPS帧时,保存所述SPS帧和PPS帧;
每次检测到I帧时,将所述SPS帧和PPS帧进插入I帧前面,且时间戳与I帧时间戳一致;
修改相应的视频数据包的序列号,以使所述序列号保持加1递增状态。
A12、如A1-A11中任意一项所述的方法,其中,所述第一音频编码格式为AAC编码格式,所述第二音频编码格式为OPUS编码格式。
A13、如A12所述的方法,其中,所述第一音频帧长度为1024,所述第二音频帧长度为960。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种流媒体数据转码方法,适于在计算设备中完成,所述方法包括:
接收源流媒体数据,对所述源流媒体数据流进行解复用,分解出源音频数据和源视频数据,所述源音频数据为第一音频编码格式;
对所述源音频数据进行音频数据处理转换成目标音频数据,所述目标音频数据为第二音频编码格式;
对所述源视频数据进行视频数据处理获得目标视频数据;
将所述目标音频数据和目标视频数据进行复用,获得目标流媒体数据。
2.如权利要求1所述的方法,其中,所述源流媒体数据为实时传输协议数据包,所述实时传输协议数据包报头中包含同步源标识符,所述对所述源流媒体数据流进行解复用,分解出源音频数据和源视频数据包括:
根据所述实时传输协议数据包报头中的同步源标识符从源流媒体数据中分解出源音频数据和源视频数据。
3.如权利要求1或2所述的方法,其中,所述第二音频编码格式的音频帧的帧长度为第二音频帧长度,所述对所述源音频数据进行音频数据处理转换成目标音频数据包括:
解析第一音频编码格式的源音频数据包,获取所述源音频数据包中的第一音频帧;
将所述第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧;
将所述第二音频编码格式的音频帧封装成目标音频数据包,并设定所述目标音频数据包的时间戳,相邻的第二音频编码格式的音频帧之间的时间戳增量为相邻的第二音频编码格式的帧间的时间间距。
4.如权利要求3所述的方法,其中,所述将所述第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧包括:
获取第一音频编码格式的音频帧中的采样点数据;
从所述采样点数据中获取第二音频帧长度的采样点数据封装成第二音频编码格式的音频帧。
5.如权利要求3或4所述的方法,其中,所述将所述第一音频帧中的采样点数据根据第二音频帧长度封装成第二音频编码格式的音频帧包括:
获取第一音频编码格式的音频帧,所述第一音频编码格式的音频帧的帧长度为第一音频帧长度,所述第一音频帧长度大于第二音频帧长度;
对每一个所述第一编码格式的音频帧中的采样点数据进行重采样,将重采样结果封装成第二音频编码格式的音频帧,所述重采样结果中的采样点个数等于第二音频帧长度。
6.如权利要求5所述的方法,其中,所述对每一个所述第一编码格式的音频帧中的采样点数据进行重采样包括:
根据第一音频帧长度和第二音频帧长度,将所述第一音频编码格式的音频帧中的采样点平均分成若干重采样组,其中,所述重采样组的个数M=N1-N2,每一个重采样组中包含的采样点数N=N1/(N1-N2),N1为第一音频帧长度,N2为第二音频帧长度;
所述每一个重采样组中按照预定规则删除一个采样点。
7.如权利要求6所述的方法,其中,所述每一个重采样组中按照预定规则删除一个采样点包括:
计算每一个重采样组中每个采样点数据与相邻采样点数据的平均绝对差值;
将其中所述平均绝对差值最小的采样点删除。
8.一种流媒体数据转码装置,包括:
接收单元,适于接收源流媒体数据,对所述源流媒体数据流进行解复用,分解出源音频数据和源视频数据,所述源音频数据为第一音频编码格式;
音频处理单元,适于对所述源音频数据进行音频数据处理转换成目标音频数据,所述目标音频数据为第二音频编码格式;
视频处理单元,适于对所述源视频数据进行视频数据处理获得目标视频数据;
复用单元,将所述目标音频数据和目标视频数据进行复用,获得目标流媒体数据。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。
CN202010781992.1A 2020-08-06 2020-08-06 流媒体数据转码方法、装置、计算设备及可读存储介质 Active CN111954027B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010781992.1A CN111954027B (zh) 2020-08-06 2020-08-06 流媒体数据转码方法、装置、计算设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010781992.1A CN111954027B (zh) 2020-08-06 2020-08-06 流媒体数据转码方法、装置、计算设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111954027A true CN111954027A (zh) 2020-11-17
CN111954027B CN111954027B (zh) 2022-07-08

Family

ID=73331452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010781992.1A Active CN111954027B (zh) 2020-08-06 2020-08-06 流媒体数据转码方法、装置、计算设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN111954027B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431689A (zh) * 2007-11-05 2009-05-13 华为技术有限公司 生成视频摘要的方法及装置
US20130042265A1 (en) * 2011-08-09 2013-02-14 General Instrument Corporation Addressable Advertising Switch by Decoupling Decoding from Service Acquisitions
CN103036889A (zh) * 2012-12-19 2013-04-10 常州中流电子科技有限公司 一种自适应的流媒体播放方法及其播放系统
CN106970771A (zh) * 2016-01-14 2017-07-21 腾讯科技(深圳)有限公司 音频数据处理方法和装置
CN108712654A (zh) * 2018-05-18 2018-10-26 网宿科技股份有限公司 一种音视频流的转码方法及设备
CN109935235A (zh) * 2013-04-05 2019-06-25 杜比国际公司 音频编码器和解码器
CN109963167A (zh) * 2019-04-02 2019-07-02 深圳市网心科技有限公司 音视频处理方法、服务器、装置及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431689A (zh) * 2007-11-05 2009-05-13 华为技术有限公司 生成视频摘要的方法及装置
US20130042265A1 (en) * 2011-08-09 2013-02-14 General Instrument Corporation Addressable Advertising Switch by Decoupling Decoding from Service Acquisitions
CN103036889A (zh) * 2012-12-19 2013-04-10 常州中流电子科技有限公司 一种自适应的流媒体播放方法及其播放系统
CN109935235A (zh) * 2013-04-05 2019-06-25 杜比国际公司 音频编码器和解码器
CN106970771A (zh) * 2016-01-14 2017-07-21 腾讯科技(深圳)有限公司 音频数据处理方法和装置
CN108712654A (zh) * 2018-05-18 2018-10-26 网宿科技股份有限公司 一种音视频流的转码方法及设备
CN109963167A (zh) * 2019-04-02 2019-07-02 深圳市网心科技有限公司 音视频处理方法、服务器、装置及存储介质

Also Published As

Publication number Publication date
CN111954027B (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
US6349286B2 (en) System and method for automatic synchronization for multimedia presentations
US9245529B2 (en) Adaptive encoding of a digital signal with one or more missing values
JP2006172432A (ja) コンパクトメディアフォーマットファイルを同期マルチメディア統合言語に変換するためのシステムおよび方法
CN108900532B (zh) 用于消息处理的电子设备、方法、存储介质和装置
US20030005141A1 (en) Information-processing apparatus, information-processing method, network system, and program
CN108924583A (zh) 视频文件生成方法及其设备、系统、存储介质
CN108174242A (zh) 直播数据复用方法、装置、存储介质及设备
CN111954027B (zh) 流媒体数据转码方法、装置、计算设备及可读存储介质
CN114222156A (zh) 视频剪辑方法、装置、计算机设备和存储介质
CN102118633B (zh) 视频文件播放的方法、装置及系统
US11838602B2 (en) MPD chaining in a live CMAF/DASH player using W3C media source and encrypted extensions
CN112153322B (zh) 数据分发方法、装置、设备及存储介质
CN108124183A (zh) 以同步获取影音以进行一对多影音串流的方法
CN114449295A (zh) 视频处理方法、装置、电子设备及存储介质
JP2004153471A (ja) チェックサム算出方法、チェックサム記録方法、およびその方法を利用可能な通信装置
EP2073559A1 (en) Multiplexing video using a DSP
JP3133677B2 (ja) 復号処理装置およびその復号処理方法
TWI600319B (zh) A method for capturing video and audio simultaneously for one-to-many video streaming
US20230239534A1 (en) Systems and methods for just in time transcoding of video on demand
CN108200481A (zh) 一种rtp-ps流处理方法、装置、设备及存储介质
CN114979718B (zh) 音视频同步续播的方法、装置、电子设备及存储介质
JP2004304410A (ja) 通信処理装置、および通信処理方法、並びにコンピュータ・プログラム
CN112188213B (zh) 编码方法、装置、计算机设备和存储介质
US20240127680A1 (en) Method and apparatus for timed referenced access unit packetization of haptics elementary streams
CN115942000A (zh) 基于h.264格式的视频流转码方法及装置、设备及介质

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
TR01 Transfer of patent right

Effective date of registration: 20220825

Address after: Room 1418, No. 64, Pingshan Nanli, Haicang District, Xiamen City, Fujian Province 361000

Patentee after: Huaxia CapitaLand (Xiamen) Technology Co.,Ltd.

Address before: 100085 2016, floor 2, building 23, No. 18 anningzhuang East Road, Qinghe, Haidian District, Beijing

Patentee before: Haolian times (Beijing) Technology Co.,Ltd.

TR01 Transfer of patent right