CN106653036B - 基于ott盒子的混音转码方法 - Google Patents

基于ott盒子的混音转码方法 Download PDF

Info

Publication number
CN106653036B
CN106653036B CN201611001725.8A CN201611001725A CN106653036B CN 106653036 B CN106653036 B CN 106653036B CN 201611001725 A CN201611001725 A CN 201611001725A CN 106653036 B CN106653036 B CN 106653036B
Authority
CN
China
Prior art keywords
buffering area
original
data
audio data
original audio
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.)
Active
Application number
CN201611001725.8A
Other languages
English (en)
Other versions
CN106653036A (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.)
iMusic Culture and Technology Co Ltd
Original Assignee
iMusic Culture and 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 iMusic Culture and Technology Co Ltd filed Critical iMusic Culture and Technology Co Ltd
Publication of CN106653036A publication Critical patent/CN106653036A/zh
Application granted granted Critical
Publication of CN106653036B publication Critical patent/CN106653036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/04Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/173Transcoding, i.e. converting between two coded representations avoiding cascaded coding-decoding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Telephonic Communication Services (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种基于OTT盒子的混音转码方法和装置,包括以下步骤:读取原始音频数据至第一缓冲区;从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区;判断所述第二缓冲区中原始音频数据是否达到预设帧数;若所述第二缓冲区中原始音频数据达到预设帧数,则从所述第二缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据;将转换成预设格式的音频数据写入预设格式文件中;其中,所述第一缓冲区以及第二缓冲区的大小为所述预设帧数的整数倍。上述基于OTT盒子的混音转码方法和装置,由音频数据来通知进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。

Description

基于OTT盒子的混音转码方法
本申请举张在先申请号为CN201510957848.8的优先权。
技术领域
本发明涉及音频处理技术领域,特别是涉及一种基于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 PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、WAV(WindowsMedia 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格式,由读取线程来通知编码线程进行转码工作,编码线程无需不断循环查看是否有数据需要进行处理,能大大地减少系统消耗。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于OTT盒子的混音转码方法,其特征在于,包括以下步骤:
读取原始音频数据至第一缓冲区;
从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区;
判断所述第二缓冲区中原始音频数据是否达到预设帧数;
若所述第二缓冲区中原始音频数据达到预设帧数,则从所述第二缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据;
将转换成预设格式的音频数据写入预设格式文件中;
其中,所述第一缓冲区以及第二缓冲区的大小为所述预设帧数的整数倍。
2.根据权利要求1所述的基于OTT盒子的混音转码方法,其特征在于,在所述从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区的步骤之前,还包括:
通过音频设备采集声音信息;
对所述声音信息进行处理得到原始音频数据;
将所述原始音频数据存入所述第一缓冲区。
3.根据权利要求2所述的基于OTT盒子的混音转码方法,其特征在于,所述方法还包括以下步骤:
当所述音频设备停止采集声音信息时,将所述原始音频数据的结尾信息写入所述第二缓冲区,以便在转码完成时,将所述原始音频数据的结尾信息转码成预设格式;将所述转码成预设格式的结尾信息写入所述预设格式文件中。
4.根据权利要求3所述的基于OTT盒子的混音转码方法,其特征在于,所述原始音频数据为原始的卡拉OK音频数据,所述预设格式为WAV格式,所述方法具体包括以下步骤:
调用读取线程从第一缓冲区读取原始的卡拉OK音频数据并将所述原始的卡拉OK音频数据添加到第二缓冲区;
判断所述第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数;
若所述第二缓冲区中原始的卡拉OK音频数据达到预设帧数,则调用编码线程从所述第二缓冲区中取出预设帧数的原始的卡拉OK音频数据转码成MP3格式;
将转换成MP3格式的录音数据写入MP3文件中。
5.根据权利要求1至4任一项所述的基于OTT盒子的混音转码方法,其特征在于,
所述第一缓冲区的大小大于或者等于第二缓冲区的大小。
6.一种基于OTT盒子的混音转码装置,其特征在于,包括:
第一读取模块,用于读取原始音频数据至第一缓冲区;
第二读取模块,用于从第一缓冲区读取原始音频数据并将所述原始音频数据添加到第二缓冲区;
判断模块,用于判断所述第二缓冲区中原始音频数据是否达到预设帧数;
转码模块,用于若所述第二缓冲区中原始音频数据达到预设帧数,则从所述第二缓冲区中取出原始音频数据进行转码,得到预设格式的音频数据;
写入模块,用于将转换成预设格式的音频数据写入预设格式文件中;
其中,所述第一缓冲区以及第二缓冲区的大小为所述预设帧数的整数倍。
7.根据权利要求6所述的基于OTT盒子的混音转码装置,其特征在于,所述装置还包括:
采集模块,用于通过音频设备采集声音信息;
处理模块,用于对所述声音信息进行处理得到原始音频数据;
存储模块,用于将所述原始音频数据存入所述第一缓冲区。
8.根据权利要求7所述的基于OTT盒子的混音转码装置,其特征在于,所述读取模块还用于当所述音频设备停止采集声音信息时,将所述原始音频数据的结尾信息写入所述第二缓冲区;
所述转码模块还用于将所述原始音频数据的结尾信息编码成预设格式;
所述写入模块还用于将所述编码成预设格式的结尾信息写入所述预设格式文件中。
9.根据权利要求8所述的基于OTT盒子的混音转码装置,其特征在于,所述原始音频数据为原始的卡拉OK音频数据,所述预设格式为MP3格式;
所述读取模块还用于调用读取线程从第一缓冲区读取原始的卡拉OK音频数据并将所述原始的卡拉OK音频数据添加到第二缓冲区;
所述判断模块还用于判断所述第二缓冲区中的原始的卡拉OK音频数据是否达到预设帧数;
所述转码模块还用于若所述第二缓冲区中原始的卡拉OK音频数据达到预设帧数,则调用编码线程从所述第二缓冲区中取出预设帧数的原始的卡拉OK音频数据编码成MP3格式;
所述写入模块还用于将转换成MP3格式的音频数据写入MP3文件中。
10.根据权利要求6至9任一项所述的基于OTT盒子的混音转码装置,其特征在于,
所述第一缓冲区的大小大于或者等于第二缓冲区的大小。
CN201611001725.8A 2015-12-17 2016-11-10 基于ott盒子的混音转码方法 Active CN106653036B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510957848.8A CN105551512A (zh) 2015-12-17 2015-12-17 音频格式转换方法和装置
CN2015109578488 2015-12-17

Publications (2)

Publication Number Publication Date
CN106653036A CN106653036A (zh) 2017-05-10
CN106653036B true CN106653036B (zh) 2018-01-12

Family

ID=55830656

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510957848.8A Pending CN105551512A (zh) 2015-12-17 2015-12-17 音频格式转换方法和装置
CN201611001725.8A Active CN106653036B (zh) 2015-12-17 2016-11-10 基于ott盒子的混音转码方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201510957848.8A Pending CN105551512A (zh) 2015-12-17 2015-12-17 音频格式转换方法和装置

Country Status (1)

Country Link
CN (2) CN105551512A (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105551512A (zh) * 2015-12-17 2016-05-04 天翼爱音乐文化科技有限公司 音频格式转换方法和装置
CN107659603B (zh) * 2016-09-22 2020-11-27 腾讯科技(北京)有限公司 用户与推送信息互动的方法及装置
CN108461086B (zh) * 2016-12-13 2020-05-15 北京唱吧科技股份有限公司 一种音频的实时切换方法和装置
CN107861707B (zh) * 2017-12-08 2021-07-20 北京酷我科技有限公司 一种全景音效的数据同步提供方法
CN107885484B (zh) * 2017-12-08 2021-07-16 北京酷我科技有限公司 一种全景音效的缓存设定方法
CN110636329A (zh) * 2018-06-22 2019-12-31 视联动力信息技术股份有限公司 一种音频数据的处理方法和装置
CN109274831B (zh) * 2018-11-01 2021-08-13 科大讯飞股份有限公司 一种语音通话方法、装置、设备及可读存储介质
CN111343503B (zh) * 2020-03-31 2022-03-04 北京金山云网络技术有限公司 视频的转码方法、装置、电子设备及存储介质
CN111755017B (zh) * 2020-07-06 2021-01-26 全时云商务服务股份有限公司 云会议的音频录制方法、装置、服务器及存储介质
CN113747236A (zh) * 2021-10-19 2021-12-03 江下信息科技(惠州)有限公司 一种基于多线程的音频格式高速转换方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1980368A (zh) * 2005-12-02 2007-06-13 海德威电子工业股份有限公司 媒体播放装置的多媒体文件生成方法及其装置
CN101964202A (zh) * 2010-09-09 2011-02-02 南京中兴特种软件有限责任公司 一种混合多种编码格式的音频数据文件播放处理方法
EP2326012A1 (en) * 2005-11-21 2011-05-25 Samsung Electronics Co., Ltd. System, medium and method of encoding/decoding multi-channel audio signals
CN103905834A (zh) * 2014-03-13 2014-07-02 深圳创维-Rgb电子有限公司 音频数据编码格式转换的方法及装置
CN105551512A (zh) * 2015-12-17 2016-05-04 天翼爱音乐文化科技有限公司 音频格式转换方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2326012A1 (en) * 2005-11-21 2011-05-25 Samsung Electronics Co., Ltd. System, medium and method of encoding/decoding multi-channel audio signals
CN1980368A (zh) * 2005-12-02 2007-06-13 海德威电子工业股份有限公司 媒体播放装置的多媒体文件生成方法及其装置
CN101964202A (zh) * 2010-09-09 2011-02-02 南京中兴特种软件有限责任公司 一种混合多种编码格式的音频数据文件播放处理方法
CN103905834A (zh) * 2014-03-13 2014-07-02 深圳创维-Rgb电子有限公司 音频数据编码格式转换的方法及装置
CN105551512A (zh) * 2015-12-17 2016-05-04 天翼爱音乐文化科技有限公司 音频格式转换方法和装置

Also Published As

Publication number Publication date
CN106653036A (zh) 2017-05-10
CN105551512A (zh) 2016-05-04

Similar Documents

Publication Publication Date Title
CN106653036B (zh) 基于ott盒子的混音转码方法
WO2020098115A1 (zh) 字幕添加方法、装置、电子设备及计算机可读存储介质
EP2395504B1 (en) Stereo encoding method and apparatus
EP4099694A1 (en) Video stream processing method and apparatus, and electronic device and computer-readable medium
CN108235052A (zh) 基于ios可选择多音频通道硬件混音、采集及播放的方法
CN110537220A (zh) 信号处理设备和方法及程序
CN105247610B (zh) 编码装置和方法、解码装置和方法以及记录介质
CN100536574C (zh) 一种快速播放多媒体信息的系统和方法
CN111199160A (zh) 即时通话语音的翻译方法、装置以及终端
CN104978966A (zh) 音频流中的丢帧补偿实现方法和装置
CN107659603B (zh) 用户与推送信息互动的方法及装置
CN111816197B (zh) 音频编码方法、装置、电子设备和存储介质
EP2595147B1 (en) Audio data encoding method and device
WO2021169825A1 (zh) 语音合成方法、装置、设备和存储介质
CN112767955B (zh) 音频编码方法及装置、存储介质、电子设备
CN112423019A (zh) 调整音频播放速度的方法、装置、电子设备及存储介质
CN106256001A (zh) 信号分类方法和装置以及使用其的音频编码方法和装置
JPH10247093A (ja) オーディオ情報分類装置
CN112689194B (zh) 功能机视频配乐方法、装置、终端设备及存储介质
CN115831132A (zh) 音频编解码方法、装置、介质及电子设备
CN1835572A (zh) 在DVD录像机设备上实现flash动漫播放的方法
US11997314B2 (en) Video stream processing method and apparatus, and electronic device and computer-readable medium
CN111866542A (zh) 音频信号处理方法、多媒体信息处理方法、装置及电子设备
JP4862136B2 (ja) 音声信号処理装置
CN103474079A (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