CN112764709A - 一种声卡数据的处理方法、装置及电子设备 - Google Patents
一种声卡数据的处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112764709A CN112764709A CN202110019439.9A CN202110019439A CN112764709A CN 112764709 A CN112764709 A CN 112764709A CN 202110019439 A CN202110019439 A CN 202110019439A CN 112764709 A CN112764709 A CN 112764709A
- Authority
- CN
- China
- Prior art keywords
- data
- sound card
- buffer area
- card data
- buffer
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/439—Processing of audio elementary streams
- H04N21/4398—Processing of audio elementary streams involving reformatting operations of audio signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供了一种声卡数据的处理方法、装置及电子设备,其中,该方法包括:预设缓冲时长可变的第一缓冲区;每当采集到声卡数据,将声卡数据、或与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区;每间隔预设时长,从第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据。本发明实施例提供的方案设置可扩展的第一缓冲区来缓存声卡数据,可以避免占用过大的缓冲区,在声卡数据存在滞后问题时通过压缩的方式缓存该声卡数据,保证正确有效地缓存音频数据,避免音频数据的时间戳异常的问题;且不需要删除声卡数据中的部分或全部数据,保证了原有采集数据的语意连贯性,且能够保证音视频同步,有效解决了声卡输出数据不稳定的问题。
Description
技术领域
本发明涉及声卡数据处理技术领域,具体而言,涉及一种声卡数据的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
声卡能够从话筒等拾音设备中获取声音的模拟信号,并将该模拟信号转换为数字信号,从而实现对声音的采集。完美的声卡需要周期性地输出恒定时长的数据,例如每隔20ms输出一段20ms长的音频数据,但现实中声卡很难保持稳定地输出正确时长的音频数据;两次音频采集间隔,声卡给出的数据可能少于间隔时间所应采集的数据,也可能不输出数据,在下一个采集时间段可能声卡给出的数据大于时间间隔所应产生的数据量,导致声卡输出数据不稳定。
对于音视频数据,音频和视频需要同步播放;此时若根据视频时间戳取得音频数据,且有多少就编码多少音频数据,如果声卡没有输出音频数据就会造成断音,如果输出的音频数据过多也会造成音视频的不同步。特别是在含有音视频的直播活动中,还可能存在网络延迟等不稳定的问题,不稳定的声卡会严重影响音视频的直播效果,造成接收端不能正常播放音频。
目前一般通过引入数据缓冲来对抗声卡输出数据不稳定所造成的抖动。当缓冲区为空的时候,同时停止音视频编码,视频采集队列按照帧率持续运行,同时将视频序列缓存起来。当声卡将音频数据输出时,重启视频和音频编码线程。在使用此种方法过程中由于声卡输出数据的不确定性,可能会引起长时间网络流媒体没有进行传输,从而造成远端观众的长时间卡顿,当声卡数据生成后由于率先编码的是老数据,也会造成远端观众的异常延时。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种声卡数据的处理方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例提供了一种声卡数据的处理方法,包括:
预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,所述第一缓冲区的缓冲时长被扩展;
每当采集到声卡数据,将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,所述压缩数据为所述声卡数据中部分或全部数据被压缩所得到的数据;
每间隔预设时长,从所述第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;所述目标数据为预设时长的音频数据、或者被扩展至所述预设时长的音频数据。
第二方面,本发明实施例还提供了一种声卡数据的处理装置,包括:
设置模块,用于预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,所述第一缓冲区的缓冲时长被扩展;
缓存模块,用于每当采集到声卡数据,将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,所述压缩数据为所述声卡数据中部分或全部数据被压缩所得到的数据;
编码模块,用于每间隔预设时长,从所述第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;所述目标数据为预设时长的音频数据、或者被扩展至所述预设时长的音频数据。
第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的声卡数据的处理方法中的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的声卡数据的处理方法中的步骤。
本发明实施例提供的声卡数据的处理方法、装置、电子设备及计算机可读存储介质,通过设置可扩展的第一缓冲区来缓存声卡数据,可以避免占用过大的缓冲区,提高缓冲区的利用率在缓存声卡数据时,可以根据实际情况对声卡数据进行压缩,使得在声卡数据存在滞后问题时通过压缩的方式缓存该声卡数据,保证正确有效地缓存音频数据,避免音频数据的时间戳异常的问题;且不需要删除声卡数据中的部分或全部数据,保证了原有采集数据的语意连贯性。此外,无论第一缓冲区中的音频数据是否足够,均可间隔地从第一缓冲区中取出目标数据,实现循环持续且平稳地编码,方便后续持续播放相应的编码数据,能够保证音视频同步,有效解决了声卡输出数据不稳定的问题。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1示出了本发明实施例所提供的一种声卡数据的处理方法的流程图;
图2示出了本发明实施例所提供的另一种声卡数据的处理方法的流程图;
图3示出了本发明实施例所提供的一种声卡数据的处理装置的结构示意图;
图4示出了本发明实施例所提供的一种用于执行声卡数据的处理方法的电子设备的结构示意图。
具体实施方式
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。
可以以汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
下面结合本发明实施例中的附图对本发明实施例进行描述。
图1示出了本发明实施例所提供的一种声卡数据的处理方法的流程图。如图1所示,该方法包括:
步骤101:预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,第一缓冲区的缓冲时长被扩展。
本发明实施例中,设置用于缓存声卡所输出数据的缓冲区,即第一缓冲区,即当声卡采集到声卡数据时,可以先将声卡数据缓存在该第一缓冲区中。此外,该第一缓冲区的缓冲时长是可变的,即在满足扩展条件时,第一缓冲区的缓冲时长被扩展。其中,缓冲时长指的是第一缓冲区所能缓存的数据的时长;例如,第一缓冲区可以缓存200ms的数据,则其缓冲时长为200ms。由于该第一缓冲区的缓冲时长是可变的,从而可以不需要设置较大的缓冲区,避免占用过多的缓冲区;且根据声卡的实际情况也可以扩展该第一缓冲区,以使得第一缓冲区满足实际需求。
步骤102:每当采集到声卡数据,将声卡数据、或与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区,压缩数据为声卡数据中部分或全部数据被压缩所得到的数据。
本发明实施例中,可以设置声卡数据采集线程,基于该线程等待从声卡读取声卡数据,当采集到声卡数据时,即可将声卡数据或者相应的压缩数据存入第一缓冲区,且循环执行该采集过程,使得通过该线程可以每当采集到声卡数据时,即可执行存入第一缓冲区的操作。其中,在正常情况下或者在不需要压缩的情况下,可以将采集到的声卡数据直接存入到第一缓冲区;当需要进行压缩时,对声卡数据进行压缩处理以生成压缩数据,进而再把压缩后的声卡数据(即压缩数据)存入到第一缓冲区中。此外,由于在不同的时间点均可能采集到声卡数据,故第一缓冲区中可以存有不同时间点对应的声卡数据和/或压缩数据,本实施例将第一缓冲区中的数据统称为音频数据。
其中,在需要对声卡数据进行压缩时,可以对其中的部分或全部数据进行压缩,从而生成压缩数据。具体地,在声卡生成的声卡数据存在滞后现象时,即声卡中间某段时间没有输出声卡数据,导致声卡数据的时间戳比较早,此时需要对声卡数据进行压缩,以将原始的声卡数据压缩为时长更短的压缩数据,从而在后续播放该压缩数据时可以起到快进的效果,且未完全丢弃原始的声卡数据。
步骤103:每间隔预设时长,从第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;目标数据为预设时长的音频数据、或者被扩展至预设时长的音频数据。
本发明实施例中,还设置音频编码线程,该音频编码线程等待预设时长之后,即从第一缓冲区中取出相应的目标数据进行编码,再等待该预设时长之后,再次从第一缓冲区中取出相应的目标数据进行编码,实现周期性地循环编码处理。其中,该声卡数据采集线程和音频编码线程是两个独立且可同步执行的线程,即上述步骤102和步骤103同步执行。其中,可以以系统时间为基准执行步骤103;或者,在采集的为音视频数据时,可以以视频时间戳为基准执行该步骤103,即每播放预设时长的视频,则从第一缓冲区中取出预设时长的音频进行编码,并同步播放相应的编码数据。
本发明实施例中,由于步骤102和步骤103是并行执行的,在执行步骤103的过程中,若声卡数据充足,则第一缓冲区中具有足够的音频数据,此时可以从第一缓冲区中取出预设时长的音频数据作为目标数据;若声卡数据不充足,例如声卡因故障没有及时输出声卡数据,导致第一缓冲区中的音频数据不足甚至音频数据为空(即没有音频数据),此时需要将第一缓冲区中所有的音频数据扩展至该预设时长。其中,在音频数据不足时,可以添加舒适音以将音频数据扩展至预设时长;例如,预设时长为40ms,当前第一缓冲区中只有30ms的音频数据,此时可以为该30ms的音频数据添加10ms的舒适音,从而可以扩展至40ms。或者,也可采取与压缩处理相反的方式,将时长较短的音频数据扩展至预设时长,实现减速播放。
本发明实施例提供的一种声卡数据的处理方法,通过设置可扩展的第一缓冲区来缓存声卡数据,可以避免占用过大的缓冲区,提高缓冲区的利用率在缓存声卡数据时,可以根据实际情况对声卡数据进行压缩,使得在声卡数据存在滞后问题时通过压缩的方式缓存该声卡数据,保证正确有效地缓存音频数据,避免音频数据的时间戳异常的问题;且不需要删除声卡数据中的部分或全部数据,保证了原有采集数据的语意连贯性。此外,无论第一缓冲区中的音频数据是否足够,均可间隔地从第一缓冲区中取出目标数据,实现循环持续且平稳地编码,方便后续持续播放相应的编码数据,能够保证音视频同步,有效解决了声卡输出数据不稳定的问题。
在上述实施例的基础上,本实施例通过判断声卡数据的开始时间戳与目标数据对应的结束时间戳之间的先后关系来确定是否需要对声卡数据进行压缩,具体地,上述步骤102“将声卡数据、或与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区”,包括:
步骤A1:若声卡数据的开始时间戳大于目标数据对应的结束时间戳,将声卡数据作为音频数据存入至第一缓冲区。
本发明实施例中,声卡数据为一个时间段的数据,其具有相应的开始时间戳和结束时间戳;而目标数据是每间隔预设时长所取出的预设时长的数据,故该目标数据也具有相应的开始时间戳和结束时间戳。例如,声卡数据是从40ms到120ms的数据,则其开始时间戳为40ms,结束时间戳为120ms,该声卡数据的时长为80ms。此外,若预设时长为40ms,则第一次取出的目标数据为0~40ms的数据,其结束时间戳为40ms,第二次取出的目标数据为40~80ms的数据,其结束时间戳为80ms,以此类推。其中,由于每间隔预设时长即去除一段目标数据,故本实施例中“目标数据对应的结束时间戳”指的是在进行比较时,最新的目标数据对应的结束时间戳。
本发明实施例中,若声卡数据的开始时间戳大于目标数据对应的结束时间戳,说明在采集到该声卡数据时,当前编码的目标数据还未执行到该声卡数据对应的时间点处,第一缓冲区中也还存在未取出的音频数据(先后采集到的两个声卡数据的时间戳是连续的,不存在时间戳断开的情况),故此时可以直接将原始的声卡数据存入到第一缓冲区中即可,以供后续作为目标数据取出。此外可选地,若声卡数据的开始时间戳等于目标数据对应的结束时间戳,也可以将声卡数据作为音频数据存入至第一缓冲区。
可选地,上述步骤A1“将声卡数据作为音频数据存入至第一缓冲区”包括:
步骤A11:在声卡数据的时长不大于第一缓冲区的剩余缓冲时长时,将声卡数据作为音频数据存入至第一缓冲区。
步骤A12:在声卡数据的时长大于第一缓冲区的剩余缓冲时长时,将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长与第一缓冲区中已有数据的时长之和,并将声卡数据作为音频数据存入至扩展后的第一缓冲区。
本发明实施例中,第一缓冲区具有一定的缓冲时长,且其可以存有音频数据,从而使得其具有剩余缓冲时长这一参数。若声卡数据的时长不大于(小于等于)该剩余缓冲时长,则说明第一缓冲区还足以存储当前的声卡数据,此时直接将声卡数据存入第一缓冲区中即可。例如,第一缓冲区的缓冲时长为200ms,当前其中存有60ms的音频数据,则其剩余缓冲时长为140ms;若当前的声卡数据为80ms,其小于140ms,此时直接将80ms的声卡数据存入到第一缓冲区即可。此时,第一缓冲区中包含140ms的音频数据,其剩余缓冲时长变为60ms。
若声卡数据的时长大于第一缓冲区的剩余缓冲时长,则第一缓冲区不足以缓存该声卡数据,此时满足扩展条件,需要对第一缓冲区进行扩展;其中,该扩展条件具体可以为声卡数据的时长大于第一缓冲区的剩余缓冲时长。本实施例中,将第一缓冲区扩展至足够大,即扩展后的第一缓冲区的缓冲时长不小于(优选的,等于)声卡数据的时长与第一缓冲区中已有数据的时长之和,以使得该声卡数据可以直接存储到第一缓冲区中。例如,第一缓冲区的缓冲时长为200ms,当前其中存有60ms的音频数据(已有数据的时长为60ms),则其剩余缓冲时长为140ms;若当前的声卡数据为180ms,其大于140ms,此时需要将第一缓冲区扩展到不小于60+180=240ms,即将第一缓冲区从200ms扩展到不小于240ms,如240ms、300ms等。扩展后的第一缓冲区的剩余缓冲时长不小于180ms,其足有缓存180ms的声卡数据,即可以直接将该声卡数据存入至第一缓冲区。
在上述实施例的基础上,若声卡数据的开始时间戳小于目标数据对应的结束时间戳,则说明声卡输出的声卡数据存在滞后的问题,音频编码线程在执行上述步骤103时曾因第一缓冲区中的音频数据不足而对音频数据进行扩展,此时需要对声卡数据进行压缩。具体地,在步骤102“采集到声卡数据”之后,该方法还包括:
步骤B1:若声卡数据的结束时间戳小于目标数据对应的结束时间戳,将声卡数据暂存至第二缓冲区。
本发明实施例中,由于声卡数据的结束时间戳一定大于声卡数据的开始时间戳,因此,若声卡数据的结束时间戳小于目标数据对应的结束时间戳,则声卡数据的开始时间戳也一定小于目标数据对应的结束时间戳。具体地,若声卡数据的结束时间戳小于目标数据对应的结束时间戳,说明当前采集到的声卡数据完全是滞后的数据,若将该声卡数据存入到第一缓冲区中,且之后取出该声卡数据再编码播放,会导致播放的声音是之前的声音,其与视频不同步。本实施例中设置另一个缓冲区,即第二缓冲区,用于暂时存储该声卡数据。此外可选地,若声卡数据的结束时间戳等于目标数据对应的结束时间戳,也可以将声卡数据暂存至第二缓冲区。本发明实施例中,该第二缓冲区为待压缩缓冲区,其中存储的数据均为需要被压缩的数据。
具体地,假设预设时长为40ms,若声卡首先输出了30ms的声卡数据A并存入至第一缓冲区,之后执行步骤103时,由于第一缓冲区中只有30ms的音频数据,此时可以为其添加10ms的舒适音以形成40ms的目标数据并编码,此时目标数据的结束时间戳为40ms,此时第一缓冲区中不存在数据。若之后声卡又输出了5ms的声卡数据B,该声卡数据B的时间戳为30ms~35ms,其结束时间戳35ms小于目标数据的结束时间戳为40ms,故此时将该5ms的声卡数据B直接存入到第二缓冲区中。
此外可选地,上述步骤102“将声卡数据、或与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区”,包括:
步骤C1:若声卡数据的开始时间戳小于目标数据对应的结束时间戳,且声卡数据的结束时间戳大于目标数据对应的结束时间戳,将与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区。
本发明实施例中,若声卡数据的开始时间戳小于目标数据对应的结束时间戳,且声卡数据的结束时间戳大于目标数据对应的结束时间戳,说明该声卡数据中的部分数据是滞后的数据(即下述的待处理数据),而另一部分数据是可以正常编码的数据,此时将该声卡数据进行压缩生成压缩数据,并将该压缩数据存入到第一缓冲区。其中,本领域技术人员可以理解,在向第一缓冲区中存入音频数据时,按照音频数据时间先后顺序依次存入到第一缓冲区中,且第一缓冲区中时间戳靠前的音频数据优先被取出。
本发明实施例中,上述步骤C1“将与声卡数据对应的压缩数据作为音频数据存入至第一缓冲区”包括步骤C11-C13:
步骤C11:对声卡数据中的待处理数据进行压缩处理、或者在第二缓冲区中存在数据时对声卡数据中的待处理数据以及第二缓冲区中的数据进行压缩处理,生成相应的压缩数据;待处理数据为声卡数据中位于目标数据对应的结束时间戳之前的数据。
本发明实施例中,以目标数据对应的结束时间戳为分界线,可以将声卡数据分为两部分,在该目标数据对应的结束时间戳之前的数据称为待处理数据。如果当前第二缓冲区中没有存在数据,则直接对该待处理数据进行压缩处理,从而生成相应的压缩数据。
可选地,上述步骤C11中“对声卡数据中的待处理数据进行压缩处理”具体可以包括:
步骤C111:将声卡数据中的待处理数据与声卡数据中的块数据进行压缩,将待处理数据和块数据压缩为与块数据的时长相一致的子压缩数据,并根据子压缩数据生成压缩数据。
本发明实施例中,块数据是声卡数据中与待处理数据不同、且与待处理数据相邻的数据;例如,可以将在该目标数据对应的结束时间戳之后的部分或全部声卡数据作为块数据。其中,在第二缓冲区不存在数据的情况下,直接将待处理数据和块数据压缩为与块数据的时长相一致的子压缩数据,进而可以生成相应的压缩数据。
例如,当前的声卡数据为30ms~100ms的数据,其时长为70ms;若目标数据对应的结束时间戳为40ms,则该声卡数据中30ms~40ms的数据为待处理数据,其余的40ms~100ms的数据可以为块数据,此时将10ms的待处理数据(30ms~40ms)和60ms的块数据(40ms~100ms)压缩为60ms长的子压缩数据(其时间戳可以是40ms~100ms),并直接将该子压缩数据作为所需的压缩数据,并存储到第一缓冲区中。或者,也可以只将40ms~60ms等部分数据作为块数据。优选地,在声卡数据足够的情况下,该块数据的时长与待处理数据的时长相同,即若待处理数据为30ms~40ms的10ms长的数据,则块数据为40ms~50ms的10ms长的数据,此时其余50ms~100ms的数据可以不做压缩处理。此时,将10ms的待处理数据(30ms~40ms)和10ms的块数据(40ms~50ms)压缩为10ms的子压缩数据(其时间戳可以是40ms~50ms),并拼接剩余的50ms~100ms的数据来形成最终所需的压缩数据。
此外,若当前第二缓冲区中存在数据,则还需要对该第二缓冲区中的数据进行压缩处理。具体地,上述步骤C11中“对声卡数据中的待处理数据以及第二缓冲区中的数据进行压缩处理”可以包括:
步骤C112:将声卡数据中的待处理数据、第二缓冲区中的数据与声卡数据中的块数据进行压缩,将待处理数据、第二缓冲区中的数据和块数据压缩为与块数据的时长相一致的子压缩数据,并根据子压缩数据生成压缩数据。
本发明实施例中,在第二缓冲区中存在数据时,其压缩方式可以与上述步骤C111的压缩方式相似,只是额外增加第二缓冲区中的数据。此时优选地,在声卡数据足够的情况下,该块数据的时长等于待处理数据的时长与第二缓冲区中数据的时长之和。
仍然以上述步骤B1处所描述的例子为例,若第二缓冲区中存在5ms的声卡数据B(其时间戳为30ms~35ms),之后声卡又输出了100ms的声卡数据C,其时间戳为35ms~135ms,则该声卡数据C中35ms~40ms的数据为待处理数据,此时可以选择声卡数据C中40ms~50ms共10ms长的数据作为块数据,将声卡数据B、声卡数据C中的待处理数据(35ms~40ms)和块数据(40ms~50ms)进行压缩,压缩为10ms的子压缩数据,进而生成所需的压缩数据。
步骤C12:在声卡数据的时长或压缩数据的时长不大于第一缓冲区的剩余缓冲时长时,将压缩数据作为音频数据存入至第一缓冲区。
步骤C13:在声卡数据的时长或压缩数据的时长大于第一缓冲区的剩余缓冲时长时,将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长、或不小于压缩数据的时长,并将压缩数据作为音频数据存入至扩展后的第一缓冲区。
本发明实施例中,与上述步骤A11-A12的过程类似,根据第一缓冲区的剩余缓冲时长是否可以足够缓存数据来确定是否需要扩展该第一缓冲区。其中,可以根据声卡数据的时长进行判断,或者基于压缩数据的时长进行判断。
具体地,若基于声卡数据的时长进行判断,其与上述步骤A11-A12基本相同,即若声卡数据的时长不大于第一缓冲区的剩余缓冲时长,由于压缩数据是被压缩后的声卡数据,压缩数据的时长一定小于声卡数据的时长,故此时可以直接将更小的压缩数据作为音频数据存入至第一缓冲区。若声卡数据的时长大于第一缓冲区的剩余缓冲时长时,此时存在第一缓冲区不能正常缓存压缩数据的风险,故可以将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长、或不小于压缩数据的时长,以使得扩展后的第一缓冲区可以缓存该压缩数据。其中,当声卡数据需要被压缩或需要存到第二缓冲区时,第一缓冲区中一定不存在数据,即第一缓冲区的缓冲时长与剩余缓冲时长相同,故此时将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长、或不小于压缩数据的时长即可;同时,在步骤C12-C13中与第一缓冲区的剩余缓冲时长进行对比,实质上也是与第一缓冲区当前的缓冲时长进行对比。
或者,也可以基于压缩数据的时长进行判断。本发明实施例中,若压缩数据的时长不大于第一缓冲区的剩余缓冲时长,此时可以将压缩数据作为音频数据存入至第一缓冲区。若压缩数据的时长大于第一缓冲区的剩余缓冲时长,则将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长、或不小于压缩数据的时长,也可以将压缩数据存入到扩展后的第一缓冲区中。
下面通过一个实施例详细介绍该声卡数据的处理方法的一种流程。参见图2所示,该方法包括:
步骤201:预设缓冲时长可变的第一缓冲区。
步骤202:采集到声卡数据后,判断声卡数据的开始时间戳是否小于目标数据对应的结束时间戳,若否,则继续步骤203,否则继续步骤206。
步骤203:判断声卡数据的时长是否大于第一缓冲区的剩余缓冲时长,若是,则继续步骤204,否则继续步骤205。
步骤204:将第一缓冲区的缓冲时长扩展至不小于声卡数据的时长与第一缓冲区中已有数据的时长之和。
步骤205:将声卡数据作为音频数据存入至第一缓冲区。
本发明实施例中,在执行步骤205之后,当前的声卡数据的缓存过程结束,之后可以执行读取过程,即执行后续的步骤214;此外,当又采集到新的声卡数据,则从步骤202开始重新执行。
步骤206:判断声卡数据的结束时间戳是否大于目标数据对应的结束时间戳,若否,则继续步骤207,否则继续步骤208。
步骤207:将声卡数据暂存至第二缓冲区。
本发明实施例中,在执行步骤207之后,当前的声卡数据的缓存过程也结束,之后可以执行步骤214。并且,当又采集到新的声卡数据,则从步骤202开始重新执行。
步骤208:判断第二缓冲区中是否存在数据,若是,则继续步骤209,否则继续步骤210。
步骤209:对声卡数据中的待处理数据以及第二缓冲区中的数据进行压缩处理,生成相应的压缩数据,之后继续步骤211。
步骤210:对声卡数据中的待处理数据进行压缩处理,生成相应的压缩数据,之后继续步骤211。
步骤211:判断压缩数据的时长是否大于第一缓冲区的剩余缓冲时长,若是,则继续步骤212,否则继续步骤213。
步骤212:将第一缓冲区的缓冲时长扩展至不小于不小于压缩数据的时长。
步骤213:将压缩数据作为音频数据存入至第一缓冲区。
本发明实施例中,在执行步骤213之后,当前的声卡数据的缓存过程也结束,之后可以执行步骤214。并且,当又采集到新的声卡数据,则从步骤202开始重新执行。
步骤214:每间隔预设时长,判断第一缓冲区中音频数据的时长是否小于预设时长,若是,则继续步骤215,否则继续步骤216。
步骤215:取出所述第一缓冲区中的全部音频数据并补充舒适音,生成预设时长的目标数据,并编码。
步骤216:取出所述第一缓冲区中预设时长的音频数据作为目标数据,并编码。
本发明实施例提供的一种声卡数据的处理方法,通过设置可扩展的第一缓冲区来缓存声卡数据,可以避免占用过大的缓冲区,提高缓冲区的利用率在缓存声卡数据时,可以根据实际情况对声卡数据进行压缩,使得在声卡数据存在滞后问题时通过压缩的方式缓存该声卡数据,将多余数据的播放时长进行压缩,保证正确有效地缓存音频数据,避免音频数据的时间戳异常的问题;且不需要删除声卡数据中的部分或全部数据,保证了原有采集数据的语意连贯性。此外,无论第一缓冲区中的音频数据是否足够,均可间隔地从第一缓冲区中取出目标数据,实现循环持续且平稳地编码,方便后续持续播放相应的编码数据,能够保证音视频同步,有效解决了声卡输出数据不稳定的问题。在声卡输出异常时,视频编码器不用再等待音频输出,可以从第一缓冲区中获得可编码数据,从而不引入超过第一缓冲区缓冲时长外的延迟。
上文详细描述了本发明实施例提供的声卡数据的处理方法,该方法也可以通过相应的装置实现,下面详细描述本发明实施例提供的声卡数据的处理装置。
图3示出了本发明实施例所提供的一种声卡数据的处理装置的结构示意图。如图3所示,该声卡数据的处理装置包括:
设置模块31,用于预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,所述第一缓冲区的缓冲时长被扩展;
缓存模块32,用于每当采集到声卡数据,将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,所述压缩数据为所述声卡数据中部分或全部数据被压缩所得到的数据;
编码模块33,用于每间隔预设时长,从所述第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;所述目标数据为预设时长的音频数据、或者被扩展至所述预设时长的音频数据。
在上述实施例的基础上,所述缓存模块32将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,包括:
若所述声卡数据的开始时间戳大于所述目标数据对应的结束时间戳,将所述声卡数据作为音频数据存入至所述第一缓冲区。
在上述实施例的基础上,所述缓存模块32将所述声卡数据作为音频数据存入至所述第一缓冲区包括:
在所述声卡数据的时长不大于所述第一缓冲区的剩余缓冲时长时,将所述声卡数据作为音频数据存入至所述第一缓冲区;
在所述声卡数据的时长大于所述第一缓冲区的剩余缓冲时长时,将所述第一缓冲区的缓冲时长扩展至不小于所述声卡数据的时长与所述第一缓冲区中已有数据的时长之和,并将所述声卡数据作为音频数据存入至扩展后的所述第一缓冲区。
在上述实施例的基础上,所述缓存模块32在采集到声卡数据之后,还用于:
若所述声卡数据的结束时间戳小于所述目标数据对应的结束时间戳,将所述声卡数据暂存至第二缓冲区。
在上述实施例的基础上,所述缓存模块32将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,包括:
若所述声卡数据的开始时间戳小于所述目标数据对应的结束时间戳,且所述声卡数据的结束时间戳大于所述目标数据对应的结束时间戳,将与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区。
在上述实施例的基础上,所述缓存模块32将与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区包括:
对所述声卡数据中的待处理数据进行压缩处理、或者在所述第二缓冲区中存在数据时对所述声卡数据中的待处理数据以及所述第二缓冲区中的数据进行压缩处理,生成相应的压缩数据;所述待处理数据为所述声卡数据中位于所述目标数据对应的结束时间戳之前的数据;
在所述声卡数据的时长或所述压缩数据的时长不大于所述第一缓冲区的剩余缓冲时长时,将所述压缩数据作为音频数据存入至所述第一缓冲区;
在所述声卡数据的时长或所述压缩数据的时长大于所述第一缓冲区的剩余缓冲时长时,将所述第一缓冲区的缓冲时长扩展至不小于所述声卡数据的时长、或不小于所述压缩数据的时长,并将所述压缩数据作为音频数据存入至扩展后的所述第一缓冲区。
在上述实施例的基础上,所述缓存模块32对所述声卡数据中的待处理数据进行压缩处理包括:
将所述声卡数据中的待处理数据与所述声卡数据中的块数据进行压缩,将所述待处理数据和所述块数据压缩为与所述块数据的时长相一致的子压缩数据,并根据所述子压缩数据生成压缩数据;
所述对所述声卡数据中的待处理数据以及所述第二缓冲区中的数据进行压缩处理包括:
将所述声卡数据中的待处理数据、所述第二缓冲区中的数据与所述声卡数据中的块数据进行压缩,将所述待处理数据、所述第二缓冲区中的数据和所述块数据压缩为与所述块数据的时长相一致的子压缩数据,并根据所述子压缩数据生成压缩数据;
其中,所述块数据为所述声卡数据中与所述待处理数据不同、且与所述待处理数据相邻的数据。
本发明实施例提供的一种声卡数据的处理装置,通过设置可扩展的第一缓冲区来缓存声卡数据,可以避免占用过大的缓冲区,提高缓冲区的利用率在缓存声卡数据时,可以根据实际情况对声卡数据进行压缩,使得在声卡数据存在滞后问题时通过压缩的方式缓存该声卡数据,将多余数据的播放时长进行压缩,保证正确有效地缓存音频数据,避免音频数据的时间戳异常的问题;且不需要删除声卡数据中的部分或全部数据,保证了原有采集数据的语意连贯性。此外,无论第一缓冲区中的音频数据是否足够,均可间隔地从第一缓冲区中取出目标数据,实现循环持续且平稳地编码,方便后续持续播放相应的编码数据,能够保证音视频同步,有效解决了声卡输出数据不稳定的问题。在声卡输出异常时,视频编码器不用再等待音频输出,可以从第一缓冲区中获得可编码数据,从而不引入超过第一缓冲区缓冲时长外的延迟。
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述声卡数据的处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图4所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述声卡数据的处理方法实施例的各个过程。
收发器1130,用于在处理器1120的控制下接收和发送数据。
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、外围总线、加速图形端口(Accelerate Graphical Port,AGP)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、扩展ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)、外围部件互连(Peripheral Component Interconnect,PCI)总线。
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、可编程逻辑阵列(Programmable Logic Array,PLA)、微控制单元(Microcontroller Unit,MCU)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存(FlashMemory)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
总线1110还可以将,例如外围设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机系统的性质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)、普通老式电话业务网(POTS)、蜂窝电话网、无线网络、无线保真(Wi-Fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(GSM)系统、码分多址(CDMA)系统、全球微波互联接入(WiMAX)系统、通用分组无线业务(GPRS)系统、宽带码分多址(WCDMA)系统、长期演进(LTE)系统、LTE频分双工(FDD)系统、LTE时分双工(TDD)系统、先进长期演进(LTE-A)系统、通用移动通信(UMTS)系统、增强移动宽带(Enhance Mobile Broadband,eMBB)系统、海量机器类通信(massive Machine Type of Communication,mMTC)系统、超可靠低时延通信(UltraReliable Low Latency Communications,uRLLC)系统等。
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存(Flash Memory)。
易失性存储器包括:随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如:静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
在本发明实施例中,存储器1150存储了操作系统1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
具体而言,操作系统1151包含各种系统程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(Media Player)、浏览器(Browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机系统可执行指令。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述声卡数据的处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种声卡数据的处理方法,其特征在于,包括:
预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,所述第一缓冲区的缓冲时长被扩展;
每当采集到声卡数据,将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,所述压缩数据为所述声卡数据中部分或全部数据被压缩所得到的数据;
每间隔预设时长,从所述第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;所述目标数据为预设时长的音频数据、或者被扩展至所述预设时长的音频数据。
2.根据权利要求1所述的方法,其特征在于,所述将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,包括:
若所述声卡数据的开始时间戳大于所述目标数据对应的结束时间戳,将所述声卡数据作为音频数据存入至所述第一缓冲区。
3.根据权利要求2所述的方法,其特征在于,所述将所述声卡数据作为音频数据存入至所述第一缓冲区包括:
在所述声卡数据的时长不大于所述第一缓冲区的剩余缓冲时长时,将所述声卡数据作为音频数据存入至所述第一缓冲区;
在所述声卡数据的时长大于所述第一缓冲区的剩余缓冲时长时,将所述第一缓冲区的缓冲时长扩展至不小于所述声卡数据的时长与所述第一缓冲区中已有数据的时长之和,并将所述声卡数据作为音频数据存入至扩展后的所述第一缓冲区。
4.根据权利要求1-3任意一项所述的方法,其特征在于,在所述采集到声卡数据之后,还包括:
若所述声卡数据的结束时间戳小于所述目标数据对应的结束时间戳,将所述声卡数据暂存至第二缓冲区。
5.根据权利要求4所述的方法,其特征在于,所述将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,包括:
若所述声卡数据的开始时间戳小于所述目标数据对应的结束时间戳,且所述声卡数据的结束时间戳大于所述目标数据对应的结束时间戳,将与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区。
6.根据权利要求5所述的方法,其特征在于,所述将与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区包括:
对所述声卡数据中的待处理数据进行压缩处理、或者在所述第二缓冲区中存在数据时对所述声卡数据中的待处理数据以及所述第二缓冲区中的数据进行压缩处理,生成相应的压缩数据;所述待处理数据为所述声卡数据中位于所述目标数据对应的结束时间戳之前的数据;
在所述声卡数据的时长或所述压缩数据的时长不大于所述第一缓冲区的剩余缓冲时长时,将所述压缩数据作为音频数据存入至所述第一缓冲区;
在所述声卡数据的时长或所述压缩数据的时长大于所述第一缓冲区的剩余缓冲时长时,将所述第一缓冲区的缓冲时长扩展至不小于所述声卡数据的时长、或不小于所述压缩数据的时长,并将所述压缩数据作为音频数据存入至扩展后的所述第一缓冲区。
7.根据权利要求6所述的方法,其特征在于,所述对所述声卡数据中的待处理数据进行压缩处理包括:
将所述声卡数据中的待处理数据与所述声卡数据中的块数据进行压缩,将所述待处理数据和所述块数据压缩为与所述块数据的时长相一致的子压缩数据,并根据所述子压缩数据生成压缩数据;
所述对所述声卡数据中的待处理数据以及所述第二缓冲区中的数据进行压缩处理包括:
将所述声卡数据中的待处理数据、所述第二缓冲区中的数据与所述声卡数据中的块数据进行压缩,将所述待处理数据、所述第二缓冲区中的数据和所述块数据压缩为与所述块数据的时长相一致的子压缩数据,并根据所述子压缩数据生成压缩数据;
其中,所述块数据为所述声卡数据中与所述待处理数据不同、且与所述待处理数据相邻的数据。
8.一种声卡数据的处理装置,其特征在于,包括:
设置模块,用于预设缓冲时长可变的第一缓冲区;其中,在满足扩展条件时,所述第一缓冲区的缓冲时长被扩展;
缓存模块,用于每当采集到声卡数据,将所述声卡数据、或与所述声卡数据对应的压缩数据作为音频数据存入至所述第一缓冲区,所述压缩数据为所述声卡数据中部分或全部数据被压缩所得到的数据;
编码模块,用于每间隔预设时长,从所述第一缓冲区中取出预设时长的目标数据进行编码,生成编码数据;所述目标数据为预设时长的音频数据、或者被扩展至所述预设时长的音频数据。
9.一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的声卡数据的处理方法中的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的声卡数据的处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019439.9A CN112764709B (zh) | 2021-01-07 | 2021-01-07 | 一种声卡数据的处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110019439.9A CN112764709B (zh) | 2021-01-07 | 2021-01-07 | 一种声卡数据的处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764709A true CN112764709A (zh) | 2021-05-07 |
CN112764709B CN112764709B (zh) | 2021-09-21 |
Family
ID=75700777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110019439.9A Active CN112764709B (zh) | 2021-01-07 | 2021-01-07 | 一种声卡数据的处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764709B (zh) |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1455408A (zh) * | 2002-05-04 | 2003-11-12 | 三星电子株式会社 | 控制音频流缓冲的方法和装置 |
CN1579059A (zh) * | 2001-09-04 | 2005-02-09 | 诺基亚有限公司 | 在话音突发期间重新同步以减少分组语音终端中同步延迟的方法和装置 |
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN101272499A (zh) * | 2008-05-13 | 2008-09-24 | 中兴通讯股份有限公司 | 一种视音频同流传输的方法及系统 |
CN101563941A (zh) * | 2006-10-18 | 2009-10-21 | 索尼在线娱乐有限公司 | 用于调节重叠媒体消息的系统和方法 |
CN101867786A (zh) * | 2009-04-20 | 2010-10-20 | 中兴通讯股份有限公司 | 一种视频监控方法及装置 |
CN103546540A (zh) * | 2013-09-26 | 2014-01-29 | 传线网络科技(上海)有限公司 | 在cdn网络上实现缓存数据控制的方法及系统 |
CN103594103A (zh) * | 2013-11-15 | 2014-02-19 | 腾讯科技(成都)有限公司 | 音频处理方法及相关装置 |
CN103744627A (zh) * | 2014-01-26 | 2014-04-23 | 武汉英泰斯特电子技术有限公司 | 对实时采集的数据压缩存储的方法及系统 |
CN104506792A (zh) * | 2014-12-03 | 2015-04-08 | 关健 | 一种人和宠物视频通信的系统及方法 |
CN105095949A (zh) * | 2014-05-13 | 2015-11-25 | 恩智浦有限公司 | 使用存储器随时间的变化的时间管理 |
CN105681817A (zh) * | 2016-01-05 | 2016-06-15 | 王成 | 一种智能终端视音频采集传输播放系统和方法 |
CN105828180A (zh) * | 2016-03-31 | 2016-08-03 | 努比亚技术有限公司 | 一种缓存视频帧的装置和方法 |
CN106875967A (zh) * | 2016-12-29 | 2017-06-20 | 珠海市杰理科技股份有限公司 | 多个音频叠加播放方法与系统 |
CN107577432A (zh) * | 2017-09-11 | 2018-01-12 | 新浪网技术(中国)有限公司 | 一种证券交易数据压缩方法及装置 |
CN108449617A (zh) * | 2018-02-11 | 2018-08-24 | 浙江大华技术股份有限公司 | 一种控制音视频同步的方法及装置 |
CN109600650A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
US20190147901A1 (en) * | 2013-06-21 | 2019-05-16 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Time Scaler, Audio Decoder, Method and a Computer Program using a Quality Control |
CN110476431A (zh) * | 2017-03-30 | 2019-11-19 | 微软技术许可有限责任公司 | 低时延移动设备视听流传输 |
CN110956974A (zh) * | 2019-12-05 | 2020-04-03 | 浙江大华技术股份有限公司 | 回声消除方法及其相关装置 |
CN110968288A (zh) * | 2019-11-28 | 2020-04-07 | 北京视博云科技有限公司 | 应用音频隔离采集的方法、装置、存储介质及设备 |
CN111526381A (zh) * | 2020-04-20 | 2020-08-11 | 北京创世云科技有限公司 | 一种优化直播资源的方法、装置及电子设备 |
-
2021
- 2021-01-07 CN CN202110019439.9A patent/CN112764709B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1579059A (zh) * | 2001-09-04 | 2005-02-09 | 诺基亚有限公司 | 在话音突发期间重新同步以减少分组语音终端中同步延迟的方法和装置 |
CN1455408A (zh) * | 2002-05-04 | 2003-11-12 | 三星电子株式会社 | 控制音频流缓冲的方法和装置 |
CN101563941A (zh) * | 2006-10-18 | 2009-10-21 | 索尼在线娱乐有限公司 | 用于调节重叠媒体消息的系统和方法 |
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN101272499A (zh) * | 2008-05-13 | 2008-09-24 | 中兴通讯股份有限公司 | 一种视音频同流传输的方法及系统 |
CN101867786A (zh) * | 2009-04-20 | 2010-10-20 | 中兴通讯股份有限公司 | 一种视频监控方法及装置 |
US20190147901A1 (en) * | 2013-06-21 | 2019-05-16 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Time Scaler, Audio Decoder, Method and a Computer Program using a Quality Control |
CN103546540A (zh) * | 2013-09-26 | 2014-01-29 | 传线网络科技(上海)有限公司 | 在cdn网络上实现缓存数据控制的方法及系统 |
CN103594103A (zh) * | 2013-11-15 | 2014-02-19 | 腾讯科技(成都)有限公司 | 音频处理方法及相关装置 |
CN103744627A (zh) * | 2014-01-26 | 2014-04-23 | 武汉英泰斯特电子技术有限公司 | 对实时采集的数据压缩存储的方法及系统 |
CN105095949A (zh) * | 2014-05-13 | 2015-11-25 | 恩智浦有限公司 | 使用存储器随时间的变化的时间管理 |
CN104506792A (zh) * | 2014-12-03 | 2015-04-08 | 关健 | 一种人和宠物视频通信的系统及方法 |
CN105681817A (zh) * | 2016-01-05 | 2016-06-15 | 王成 | 一种智能终端视音频采集传输播放系统和方法 |
CN105828180A (zh) * | 2016-03-31 | 2016-08-03 | 努比亚技术有限公司 | 一种缓存视频帧的装置和方法 |
CN106875967A (zh) * | 2016-12-29 | 2017-06-20 | 珠海市杰理科技股份有限公司 | 多个音频叠加播放方法与系统 |
CN110476431A (zh) * | 2017-03-30 | 2019-11-19 | 微软技术许可有限责任公司 | 低时延移动设备视听流传输 |
CN107577432A (zh) * | 2017-09-11 | 2018-01-12 | 新浪网技术(中国)有限公司 | 一种证券交易数据压缩方法及装置 |
CN108449617A (zh) * | 2018-02-11 | 2018-08-24 | 浙江大华技术股份有限公司 | 一种控制音视频同步的方法及装置 |
CN109600650A (zh) * | 2018-08-01 | 2019-04-09 | 北京微播视界科技有限公司 | 用于处理数据的方法和装置 |
CN110968288A (zh) * | 2019-11-28 | 2020-04-07 | 北京视博云科技有限公司 | 应用音频隔离采集的方法、装置、存储介质及设备 |
CN110956974A (zh) * | 2019-12-05 | 2020-04-03 | 浙江大华技术股份有限公司 | 回声消除方法及其相关装置 |
CN111526381A (zh) * | 2020-04-20 | 2020-08-11 | 北京创世云科技有限公司 | 一种优化直播资源的方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112764709B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108111997B (zh) | 蓝牙设备音频同步方法和系统 | |
US10180981B2 (en) | Synchronous audio playback method, apparatus and system | |
CN112437345B (zh) | 视频倍速播放方法、装置、电子设备及存储介质 | |
CN110784718B (zh) | 视频数据编码方法、装置、设备和存储介质 | |
CN107517400B (zh) | 流媒体播放方法及流媒体播放器 | |
CN114299972A (zh) | 音频处理方法、装置、设备及存储介质 | |
US11908481B2 (en) | Method for encoding live-streaming data and encoding device | |
CN112764709B (zh) | 一种声卡数据的处理方法、装置及电子设备 | |
CN112711477B (zh) | 一种切换应用程序的方法、装置及电子设备 | |
CN112565834A (zh) | 一种控制输出数据的方法、装置及电子设备 | |
CN111436009A (zh) | 一种实时视频流传送、显示方法以及传送和播放系统 | |
CN113014981A (zh) | 视频播放方法、装置、电子设备及可读存储介质 | |
CN113423009B (zh) | 一种视频进度调整方法、装置及电子设备 | |
CN108616767B (zh) | 一种音频数据传输方法及装置 | |
CN107005743B (zh) | 用于实现调入的视频比特流处理 | |
CN113473215B (zh) | 录屏方法、装置、终端及存储介质 | |
CN115426501A (zh) | 一种音视频码流时间校准方法及电子设备 | |
CN113613221B (zh) | Tws主设备、tws从设备、音频设备及系统 | |
CN112559449B (zh) | 一种数据转换处理的方法、装置及电子设备 | |
CN114554267A (zh) | 基于数字孪生技术的音频视频的同步方法及装置 | |
CN113409801A (zh) | 用于实时音频流播放的噪音处理方法、系统、介质和装置 | |
CN111866542B (zh) | 音频信号处理方法、多媒体信息处理方法、装置及电子设备 | |
EP3503563A1 (en) | Computer system and method for synchronous data transmission of multiple data streams | |
CN112468679B (zh) | 一种同步播放音视频课件的方法、装置及电子设备 | |
CN111526381A (zh) | 一种优化直播资源的方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |