基于OTT盒子的混音转码方法与流程

文档序号:11097858
基于OTT盒子的混音转码方法与制造工艺

技术领域

本发明涉及音频处理技术领域,特别是涉及一种基于OTT盒子的混音转码方法和装置。



背景技术:

用户通过OTT(Over The Top,通过互联网向用户提供各种应用服务)盒子进行进行语音服务时输出的多为PCM(Pulse Code Modulation,脉冲编码调制)语音数据,若直接保存成音频文件,是无法被播放器进行播放的,所以须先实现数据编码及压缩,将其转换成其它格式。而在进行格式转换时,传统的方法是建立编码线程进行数据编码,当编码线程中有数据时则开始进行处理,编码线程需不断循环查看是否有数据需要进行处理,造成大量的系统消耗。



技术实现要素:

基于此,有必要针对音频数据进行格式转换时造成大量系统消耗的问题,提供一种基于OTT盒子的混音转码方法。

此外,还有必要针对音频数据进行格式转换时造成大量系统消耗的问题,提供一种基于OTT盒子的混音转码装置。

一种基于OTT盒子的混音转码方法,包括以下步骤:

读取原始音频数据至第一缓冲区;

从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区;

判断所述第一缓冲区中原始音频数据是否达到预设帧数;

若所述第一缓冲区中原始音频数据达到预设帧数,则从所述第一缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据;

将转换成预设格式的音频数据写入预设格式文件中;

其中,所述第一缓冲区以及第二缓冲区的大小为所述预设帧数的整数倍。

在其中一个实施例中,在所述从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区的步骤之前,还包括:

通过音频设备采集声音信息;

对所述声音信息进行处理得到原始音频数据;

将所述原始音频数据存入所述第一缓冲区。

在其中一个实施例中,所述方法还包括以下步骤:

当所述音频设备停止采集声音信息时,将所述原始音频数据的结尾信息写入所述第二缓冲区;以便转码完成时,将所述原始音频数据的结尾信息编码成预设格式;将所述编码成预设格式的结尾信息写入所述预设格式文件中。

在其中一个实施例中,所述原始音频数据为原始的卡拉OK音频数据,所述预设格式为MP3格式,所述方法具体包括以下步骤:

调用读取线程从第一缓冲区读取原始的卡拉OK音频数据并将所述原始的卡拉OK音频数据添加到第二缓冲区;

判断所述第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数;

若所述第二缓冲区中原始的卡拉OK音频数据达到预设帧数,则调用编码线程从所述第二缓冲区中取出预设帧数的原始的卡拉OK音频数据编码成MP3格式;

将转换成MP3格式的录音数据写入MP3文件中。

一种基于OTT盒子的混音转码装置,包括:

第一读取模块,用于读取原始音频数据至第一缓冲区;

第二读取模块,用于从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区

判断模块,用于判断所述第二缓冲区中原始音频数据是否达到预设帧数;

转码模块,用于若所述第二缓冲区中原始音频数据达到预设帧数,则从所述第二缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据;

写入模块,用于将转换成预设格式的音频数据写入预设格式文件中;

其中,所述第一缓冲区以及第二缓冲区的大小为所述预设帧数的整数倍。

在其中一个实施例中,所述装置还包括:

采集模块,用于通过音频设备采集声音信息;

处理模块,用于对所述声音信息进行处理得到原始音频数据;

存储模块,用于将所述原始音频数据存入所述第一缓冲区。

在其中一个实施例中,所述读取模块还用于当所述音频设备停止采集声音信息时,将所述原始音频数据的结尾信息写入所述第二缓冲区;

所述转码模块还用于将所述原始音频数据的结尾信息编码成预设格式;

所述写入模块还用于将所述编码成预设格式的结尾信息写入所述预设格式文件中。

在其中一个实施例中,所述原始音频数据为原始的卡拉OK音频数据,所述预设格式为MP3格式;

所述读取模块还用于调用读取线程从第一缓冲区读取原始的卡拉OK音频数据并将所述原始的卡拉OK音频数据添加到第二缓冲区;

所述判断模块还用于判断所述第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数;

所述转码模块还用于若所述第二缓冲区中原始的卡拉OK音频数据达到预设帧数,则调用编码线程从所述第二缓冲区中取出预设帧数的原始的卡拉OK音频数据编码成MP3格式;

所述写入模块还用于将转换成MP3格式的音频数据写入MP3文件中。

上述基于OTT盒子的混音转码方法和装置,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

附图说明

图1为一个实施例中基于OTT盒子的混音转码方法的流程示意图;

图2为一个实施例中转换音频数据的结尾信息的流程示意图;

图3为另一个实施例中基于OTT盒子的混音转码方法的流程示意图;

图4为一个实施例中基于OTT盒子的混音转码装置的结构示意图;

图5为另一个实施例中基于OTT盒子的混音转码装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,一种基于OTT盒子的混音转码方法,包括以下步骤:

步骤S110,读取原始音频数据至第一缓冲区;

具体的,第一缓冲区为操作系统中专门用于临时存放原始音频数据的缓冲区。

步骤S120,从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区。

具体的,原始音频数据的数据包在第二缓冲区中以队列的形式进行排列,先读取的排在队列前面,依次类推添加到第二缓冲区中。原始音频数据为需要转换成预设格式的音频数据,例如录音数据,其原始格式为PCM格式,需要转换成MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、WAV(Windows Media Audio,Windows多媒体压缩)等其它音频格式,但不限于此。

可以根据预设帧数调整第一缓冲区大小,使第一缓冲区的大小为预设帧数的整数倍。

因当读取线程从第二缓冲区读取的原始音频数据达到预设帧数时,即调用编码线程从第二缓冲区中取出原始音频数据进行编码成预设格式,将第一缓冲区的大小调整为预设帧数的整数倍,可减少原始音频数据的丢失。

步骤S130,判断第二缓冲区中原始音频数据是否达到预设帧数,若是,则执行步骤S140,若否,则执行步骤S110。

具体的,可预先设置通知周期,以帧为单位,当读取的原始音频数据的数据包达到预设帧数,即第二缓冲区中原始音频数据达到预设帧数时,立即调用编码线程进行转码,由读取线程来通知编码线程进行工作,该预设帧数可根据实际需求进行设置,例如100帧、200帧等。此外,通过建立读取线程与编码线程,将读取线程与编码线程分开,可避免发生线程阻塞。

步骤S140,从第二缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据。

具体的,当读取的原始音频数据的数据包达到预设帧数,读取线程即通知编码线程开始进行转码,调用编码线程从第二缓冲区中取出原始音频数据,并将该原始音频数据编码成预设格式,可从第二缓冲区中取出预设帧数的原始音频数据,即取出第二缓冲区全部的原始音频数据,使得读取的原始音频数据的帧数等于编码的原始音频数据,可减少原始音频数据的丢失。在其它的实施例中,也可从第二缓冲区中取出部分的原始音频数据进行编码成预设格式,可在该部分的原始音频数据编码完成后,继续取出部分的原始音频数据进行编码成预设格式。

步骤S150,将转换成预设格式的音频数据写入预设格式文件中。

具体的,预设格式可为MP3、WAV、AAC(Advanced Audio Coding,高级音频编码)、AMR(Adaptive Multi-Rate,自适应多速率)等音频格式中的一种,其中,MP3格式是大众最常用的音频格式,压缩率较高且音质较好;WAV格式一般用于保存Windows平台的音频信息资源,音质高,但是压缩率较小,文件比较大;AAC格式拥有更佳的音质,采用有损压缩,且压缩率高,文件小,但支持该格式的操作系统较少,例如IOS(苹果公司的移动操作系统)、Android(安卓)SDK(Software Development Kit,软件开发包)4.1.2以上等支持播放;AMR格式的压缩率较高,但其相对于其它音频格式音质较差,多用于人声、通话等录音数据的格式保存。在将原始音频数据编码成预设格式的同时,读取线程一直在从第一缓冲区中读取原始音频数据并添加入第二缓冲区,当第二缓冲区的原始音频数据又达到预设帧数时,再一次调用编码线程取出第二缓冲区中全部的原始音频数据进行编码成预设格式,并将转换成预设格式的音频数据写入预设格式文件中,直至无原始音频数据可读取为止。

上述基于OTT盒子的混音转码方法,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

在一个实施例中,所述第一缓冲区的大小大于或者等于第二缓冲区的大小。以保证第二缓冲区可以从第一缓冲区提取足够的原始音频数据,进一步减少原始音频数据的丢失。

在一个实施例中,在步骤从第一缓冲区读取原始音频数据并将原始音频数据添加到第二缓冲区之前,还包括以下步骤:

(1)通过音频设备采集声音信息。

具体的,音频设备可为麦克风、播放器等设备,声音信息可包括人声、背景声、伴唱等,可通过麦克风采集人声,播放器采集伴唱等声音信息。

(2)对该声音信息进行处理得到原始音频数据。

具体的,将通过不同的音频设备采集得到的人声、伴唱等声音信息进行融和处理,例如进行去噪、混音等处理,并得到原始音频数据临时存入第一缓冲区中。本实例中,可实现边采集声音信息边进行音频格式转化,即当开始采集声音信息时,开始调用读取线程从第一缓冲区中读取原始音频数据,当音频设备暂停采集声音信息时,读取线程才不再继续工作。边采集声音信息边进行音频格式转化,可减少音频格式转化所需的等待时间。

在一个实施例中,步骤对该声音信息进行处理得到原始音频数据,可包括以下步骤:

(1)将伴唱数据转化为与人声数据相同的音频格式。

具体的,通过麦克风采集到的人声数据一般可输出为最原始的PCM语音格式,可对伴唱数据进行解码,并把伴唱数据也化成与人声数据相同的PCM语音格式,即可进行混音操作。

(2)读取相同帧数的人声数据及伴唱数据进行混音操作。

具体的,可先设置人声缓冲区及伴唱缓冲区,然后将通过不同的音频设备采集到的人声数据及转化格式后的伴唱数据分别存储在人声缓冲区中及伴唱缓冲区中。每次可读取相同大小的人声数据及伴唱数据进行混音操作,可保证获取的人声数据及伴唱数据基本同步。因人声数据与伴唱数据的语音格式一致,均为PCM语音格式,故可将读取的人声数据及伴唱数据进行叠加,并对叠加后的数据进行修复,保证进行混音操作后得到的原始音频数据的音质效果。人声数据与伴唱数据的样本大小是固定的,例如可为short16位字节,在进行叠加后,数据容易溢出,故可拓宽样本大小,例如直接拓宽为int32字节,保证叠加后的数据大小不会溢出。还可设置衰减因子,降低叠加后的数据的振幅大小,使叠加后的数据能落回16位所能表示的范围内。当人声数据及伴唱数据叠加后的数据大小溢出时,衰减因子较小,可使得溢出的数据在衰减后能够处于临界值以内,而在叠加后的数据大小没有溢出时,可让衰减因子慢慢增大,使数据较为平缓的变化。人声数据及伴唱数据进行混音操作完成后即获得原始音频数据,可将原始音频数据存入第一缓冲区中,以便进行后续的格式转化操作。

(3)将原始音频数据存入第一缓冲区。

在进一步的实施例中,在步骤通过音频设备采集声音信息之前,还可包括步骤:初始化音频信息对象。

具体的,音频信息对象可包括输入采样频率、输出采样频率、输入采样位数、声道数、音频质量等中的一种或多种。可根据实际需求,预先初始化设置上述音频信息对象,方便后续音频数据的格式转化及进行音频文件保存。

在一个实施例中,上述基于OTT盒子的混音转码方法还包括步骤:同步计算原始音频数据的音量大小。

具体的,原始音频数据的音量大小可根据输入采样频率、输入采样位数、声道数等音频信息进行计算,可预先设置计算公式,例如采用数据量(字节/秒)=(输入采样频率(Hz,赫兹)*输入采样位数(bit,比特)*输入声道数)/8的公式进行计算,其中单声道的声道数为1,立体声的声道数为2。在其它的实施例中,也可使用其它的音量计算公式进行计算。

上述基于OTT盒子的混音转码方法,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

如图2所示,在一个实施例中,上述基于OTT盒子的混音转码方法还包括以下步骤:

步骤S210,当音频设备停止采集声音信息时,将原始音频数据的结尾信息写入第二缓冲区。

具体的,当音频设备停止采集声音信息时,则读取线程停止从第一缓冲区中读取原始音频数据,并将原始音频数据的结尾信息写入第二缓冲区。结尾信息可包括原始音频数据的总数据帧数、音频时间、声道数、音频质量等信息中的一种或多种。

步骤S220,将原始音频数据的结尾信息编码成预设格式。

具体的,编码线程将该原始音频数据的结尾信息编码成预设格式,并写入预设格式文件中,即表示完成音频数据的格式转换工作。

步骤S230,将编码成预设格式的结尾信息写入预设格式文件中。

上述基于OTT盒子的混音转码方法,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

如图3所示,在一个实施例中,一种基于OTT盒子的混音转码方法,原始音频数据可为原始的卡拉OK音频数据,预设格式可为MP3,包括以下步骤:

步骤S310,调用读取线程从第一缓冲区读取原始的卡拉OK音频数据并将原始的卡拉OK音频数据添加到第二缓冲区。

步骤S320,判断第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数,若是,则执行步骤S330,若否,则执行步骤S310。

具体的,当读取的原始的卡拉OK音频数据的数据包达到预设帧数,即第二缓冲区中原始的卡拉OK音频数据达到预设帧数时,立即调用编码线程进行编码成MP3格式,由读取线程来通知编码线程进行工作。

步骤S330,调用编码线程从第二缓冲区中取出预设帧数的原始的卡拉OK音频数据编码成MP3格式。

具体的,可从第二缓冲区中取出预设帧数的原始的卡拉OK音频数据,即取出第二缓冲区全部的原始的卡拉OK音频数据编码成MP3格式,使得读取的原始的卡拉OK音频数据的帧数等于编码的原始的卡拉OK音频数据,可减少原始的卡拉OK音频数据的丢失。编码成MP3格式后,可将转换成MP3格式的录音数据写入MP3文件中。

步骤S340,将转换成MP3格式的录音数据写入MP3文件中。

上述基于OTT盒子的混音转码方法,只有当第二缓冲区的数据达到预设帧数时才将第二缓冲区中的原始的卡拉OK音频数据编码成MP3格式,由读取线程来通知编码线程进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

如图4所示,一种基于OTT盒子的混音转码装置,包括第一读取模块410、第二读取模块411、判断模块420、转码模块430和写入模块440。

第一读取模块410,用于读取原始音频数据至第一缓冲区;

第二读取模块411,用于从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区;其中,所述第一缓冲区以及第二缓冲区的大小为预设帧数的整数倍。

具体的,可调用读取线程从第一缓冲区读取原始音频数据并将原始音频数据添加到第二缓冲区。第一缓冲区、第二缓冲区可为用户自行设置的缓冲区,大小可根据实际情况进行设定,原始音频数据的数据包在第二缓冲区中以队列的形式进行排列,先读取的排在队列前面,依次类推添加到第二缓冲区中。原始音频数据为需要转换成预设格式的音频数据,例如录音数据,其原始格式为PCM格式,需要转换成MP3、WAV等其它音频格式,但不限于此。

判断模块420,用于判断第二缓冲区中原始音频数据是否达到预设帧数。

具体的,可预先设置通知周期,以帧为单位,当读取的原始音频数据的数据包达到预设帧数,即第二缓冲区中原始音频数据达到预设帧数时,立即调用编码线程进行转码,由读取线程来通知编码线程进行工作,该预设帧数可根据实际需求进行设置,例如100帧、200帧等。此外,通过建立读取线程与编码线程,将读取线程与编码线程分开,可避免发生线程阻塞。

转码模块430,用于若第二缓冲区中原始音频数据达到预设帧数,则从所述第二缓冲区中取出部分原始音频数据进行转码,得到预设格式的音频数据。

具体的,当读取的原始音频数据的数据包达到预设帧数,读取线程即通知编码线程开始进行转码,调用编码线程从第二缓冲区中取出原始音频数据,并将该原始音频数据编码成预设格式,可从第二缓冲区中取出预设帧数的原始音频数据,即取出第二缓冲区全部的原始音频数据,使得读取的原始音频数据的帧数等于编码的原始音频数据,可减少原始音频数据的丢失。在其它的实施例中,也可从第二缓冲区中取出部分的原始音频数据进行编码成预设格式,可在该部分的原始音频数据编码完成后,继续取出部分的原始音频数据进行编码成预设格式。

写入模块440,用于将转换成预设格式的音频数据写入预设格式文件中。

具体的,预设格式可为MP3、WAV、AAC、AMR等音频格式中的一种,其中,MP3格式是大众最常用的音频格式,压缩率较高且音质较好;WAV格式一般用于保存Windows平台的音频信息资源,音质高,但是压缩率较小,文件比较大;AAC格式拥有更佳的音质,采用有损压缩,且压缩率高,文件小,但支持该格式的操作系统较少,例如IOS、Android SDK4.1.2以上等支持播放;AMR格式的压缩率较高,但其相对于其它音频格式音质较差,多用于人声、通话等录音数据的格式保存。在将原始音频数据编码成预设格式的同时,读取线程一直在读取原始音频数据并添加入第二缓冲区,当第二缓冲区的原始音频数据又达到预设帧数时,再一次调用编码线程取出第二缓冲区中全部的原始音频数据进行编码成预设格式,并将转换成预设格式的音频数据写入预设格式文件中,直至无原始音频数据可读取为止。

上述基于OTT盒子的混音转码装置,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

如图5所示,在一个实施例中,上述基于OTT盒子的混音转码装置,除了包括读取模块410、判断模块420、转码模块430和写入模块440,还包括采集模块460、处理模块470和存储模块480。

因当读取线程从第二缓冲区读取的原始音频数据达到预设帧数时,即调用编码线程从第二缓冲区中取出原始音频数据进行编码成预设格式,将第一缓冲区的大小调整为预设帧数的整数倍,可减少原始音频数据的丢失。

采集模块460,用于通过音频设备采集声音信息。

具体的,音频设备可为麦克风、播放器等设备,声音信息可包括人声、背景声、伴唱等,可通过麦克风采集人声,播放器采集伴唱等声音信息。

处理模块470,用于对该声音信息进行处理得到原始音频数据。

具体的,将通过不同的音频设备采集得到的人声、伴唱等声音信息进行融和处理,例如进行去噪、混音等处理,并得到原始音频数据临时存入第一缓冲区中。本实例中,可实现边采集声音信息边进行音频格式转化,即当开始采集声音信息时,开始调用读取线程从第一缓冲区中读取原始音频数据,当音频设备暂停采集声音信息时,读取线程才不再继续工作。边采集声音信息边进行音频格式转化,可减少音频格式转化所需的等待时间。

存储模块480,用于将原始音频数据存入第一缓冲区。

在一个实施例中,所述第一缓冲区的大小大于或者等于第二缓冲区的大小。以保证第二缓冲区可以从第一缓冲区提取足够的原始音频数据,进一步减少原始音频数据的丢失。

在一个实施例中,上述基于OTT盒子的混音转码装置还包括初始化模块、计算模块。

初始化模块,用于初始化音频信息对象。

具体的,音频信息对象可包括输入采样频率、输出采样频率、输入采样位数、声道数、音频质量等中的一种或多种。可根据实际需求,预先初始化设置上述音频信息对象,方便后续音频数据的格式转化及进行音频文件保存。

计算模块,用于同步计算原始音频数据的音量大小。

具体的,原始音频数据的音量大小可根据输入采样频率、输入采样位数、声道数等音频信息进行计算,可预先设置计算公式,例如采用数据量(字节/秒)=(输入采样频率(Hz)*输入采样位数(bit)*输入声道数)/8的公式进行计算,其中单声道的声道数为1,立体声的声道数为2。在其它的实施例中,也可使用其它的音量计算公式进行计算。

上述基于OTT盒子的混音转码装置,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

在一个实施例中,上述基于OTT盒子的混音转码装置,读取模块410还用于当音频设备停止采集声音信息时,将所述原始音频数据的结尾信息写入第二缓冲区。

具体的,当音频设备停止采集声音信息时,则读取线程停止从第一缓冲区中读取原始音频数据,并将原始音频数据的结尾信息写入第二缓冲区。结尾信息可包括原始音频数据的总数据帧数、音频时间、声道数、音频质量等信息中的一种或多种。

转码模块430还用于将原始音频数据的结尾信息编码成预设格式。

具体的,编码线程将该原始音频数据的结尾信息编码成预设格式,并写入预设格式文件中,即表示完成音频数据的格式转换工作。

写入模块440还用于将编码成预设格式的结尾信息写入预设格式文件中。

上述基于OTT盒子的混音转码装置,只有当第二缓冲区的数据达到预设帧数时才进行音频数据的格式转换,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

在另一个实施例中,在上述基于OTT盒子的混音转码装置中,原始音频数据可为原始的卡拉OK音频数据,预设格式可为MP3格式。

读取模块410还用于调用读取线程读取原始的卡拉OK音频数据并将原始的卡拉OK音频数据添加到第二缓冲区。

具体的,可调用读取线程从第一缓冲区中读取原始的卡拉OK音频数据,其中,可通过音频设备采集声音信息并进行处理获得原始的卡拉OK音频数据,并临时存储在第一缓冲区中。

判断模块420还用于判断第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数。

具体的,当读取的原始的卡拉OK音频数据的数据包达到预设帧数,即第二缓冲区中原始的卡拉OK音频数据达到预设帧数时,立即调用编码线程进行编码成MP3格式,由读取线程来通知编码线程进行工作。

转码模块430还用于若第二缓冲区中原始的卡拉OK音频数据达到预设帧数,则调用编码线程从第二缓冲区中取出预设帧数的原始的卡拉OK音频数据进行MP3编码。

具体的,可从第二缓冲区中取出预设帧数的原始的卡拉OK音频数据,即取出第二缓冲区全部的原始的卡拉OK音频数据编码成MP3格式,使得读取的原始的卡拉OK音频数据的帧数等于编码的原始的卡拉OK音频数据,可减少原始的卡拉OK音频数据的丢失。编码成MP3格式后,可将转换成MP3格式的录音数据写入MP3文件中。

写入模块440还用于将转换成MP3格式的音频数据写入MP3文件中。

上述基于OTT盒子的混音转码装置,只有当第二缓冲区的数据达到预设帧数时才将第二缓冲区中的原始的卡拉OK音频数据编码成MP3格式,由读取线程来通知编码线程进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1