pcm编码

Android 能够暂停的录音功能

99封情书 提交于 2020-03-29 12:17:19
Android ApI提供了MediaRecorder和AudioRecord两个类给开发者来很方便地实现音视频的录制(前者可以实现音频和视频的录制,后者只能实 现音频的录制)。这两个类都提供了start()和stop()方法用于开始和结束音频或视频的录制,但令人费解的是这两个类都没有提供pause()方 法用于暂停录制音视频,因为在实际应用当中,暂停录制的功能是非常有必要的Android 实现能够暂停的录音功能 需实现音频录制的暂停功能,并且生成的音频文件格式必须是m4a格式 为什么项目中音频文件一定要采用m4a格式的呢?有以下几点原因: 1. 录制相同时间的音频,使用m4a格式存储的文件的大小要比使用其它格式类型存储的文件的大小要小(通过实验多次,在相同采样率16000的情况下,一般录 制5分钟的音频,采用m4a格式存储的音频文件只有1.2Mb,而采用arm、mp3及其它格式的一般都有2-5Mb),这样当用户需要 下载 或上传录制的音频文件时,可以节省流量,并且相同压缩率的前提下,m4a格式音频的音质相比其它格式的也更高; 2.产品同时拥有Android客户端和IOS客户端,那为了避免使用Android客户端的用户录制的音频上传到服务器之后,使用IOS客户端的用户下 载下来发生无法播放的问题,我们需统一录制音频的存储格式

音视频编码技术与格式大全

拥有回忆 提交于 2020-02-24 09:47:54
一、常见视频格式中采用的技术   当PC开始拥有FPU(浮点处理器)后,PC如何处理多媒体信息的问题也被摆上台面。无数专家开始为音频视频编码技术运用在PC上开始忙碌了,视频技术也因此得到了飞快的进步。   1、无声时代的FLC   FLC、FLI是Autodesk开发的一种视频格式,仅仅支持256色,但支持色彩抖动技术,因此在很多情况下很真彩视频区别不是很大,不支持音频信号,现在看来这种格式已经毫无用处,但在没有真彩显卡没有声卡的DOS时代确实是最好的也是唯一的选择。最重要的是,Autodesk的全系列的动画制作软件都提供了对这种格式的支持,包括著名的3D Studio X,因此这种格式代表了一个时代的视频编码水平。直到今日,仍旧有不少视频编辑软件可以读取和生成这种格式。但毕竟廉颇老矣,这种格式已经被无情的淘汰。   2、载歌载舞的AVI   AVI--Audio Video Interleave,即音频视频交叉存取格式。1992年初Microsoft公司推出了AVI技术及其应用软件VFW(Video for Windows)。在AVI文件中,运动图像和伴音数据是以交织的方式存储,并独立于硬件设备。这种按交替方式组织音频和视像数据的方式可使得读取视频数据流时能更有效地从存储媒介得到连续的信息。构成一个AVI文件的主要参数包括视像参数、伴音参数和压缩参数等。AVI文件用的是AVI

WAV格式中常见的压缩编码

僤鯓⒐⒋嵵緔 提交于 2020-01-14 05:52:36
WAV 格式中常见的压缩编码 (compression code) WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道。标准格式化的WAV文件采样频率为44100Hz,采样比特为16bit,因此标准的(这里说标准,只是一种广泛采用的波形音频方案)WAV文件和CD音频格式一样,也是44.1KHz的取样频率,16位量化数字,在声音文件质量和CD音频相差无几。  下面由 useiee 详细介绍一下WAV格式文件常见的10种压缩码形式(Compression Code)。[1]  1. PCM/uncompressed   Pulse Code Modulation,脉码调制信号。是模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志。Windows的Convert工具可以把PCM音频格式的文件转换成Microsoft的WAV格式的文件。   PCM脉码调制数字音频格式是70年代末发展起来的,80年代初由飞利浦和索尼公司共同推出。PCM的音频格式也被DVD

使用AudioRecorder录音

。_饼干妹妹 提交于 2020-01-11 04:50:50
安仔夏天勤奋 - 音视频理解的知识笔记 android平台上的音频采集一般就两种方式: 1、使用MediaRecorder进行音频采集。 MediaRecorder 是基于 AudioRecorder 的 API(最终还是会创建AudioRecord用来与AudioFlinger进行交互) ,它可以直接将采集到的音频数据转化为执行的编码格式,并保存。这种方案相较于调用系统内置的用用程序,便于开发者在UI界面上布局,而且系统封装的很好,便于使用,唯一的缺点是使用它录下来的音频是经过编码的,没有办法的得到原始的音频。同时MediaRecorder即可用于音频的捕获也可以用于视频的捕获相当的强大。实际开发中没有特殊需求的话,用的是比较多的! 2、使用AudioRecord进行音频采集 AudioRecord 是一个比较偏底层的API,它可以获取到一帧帧PCM数据,之后可以对这些数据进行处理。AudioRecord这种方式采集最为灵活,使开发者最大限度的处理采集的音频,同时它捕获到的音频是原始音频PCM格式的!像做变声处理的需要就必须要用它收集音频。 3、实例化AudioRecord audioRecord = new AudioRecord(audioSource,sampleRateInHz,channelConfig,audioFormat, 参数介绍 //

Alsa 小结

天涯浪子 提交于 2019-12-04 03:40:25
ALSA小结,从网上转载的,不知道原来的地址了 关于alsa的总结: 一. alsa展现的三层结构: (1)audio interface: audio interface就是声卡,它含有hardware buffer,注意,这个hardware buffer是在声卡里面,不是内存。 (2)computer: 这个指的是计算机的内核和驱动(驱动由alsa提供),当(1)的audio interfacce引发中断,内核会捕捉到,再把处理移交alsa。 (3)application: 这个就是你写的程序,你开辟一个buffer,比如playback,就交给alsa来play。 在上面的框架下,流程如下: (1)playback: application开辟一个buffer,填上数据,调用alsa接口,alsa把buffer数据复制到其驱动的空间,再把数据交给 hardware buffer。 (2)record: 同playback,相似的。 二. 细节: 按照上面的流程,其中有许多细节我们可以加以控制,这里仅仅指出应用程序需要关心的: 2.1 操作的设备: 在alsa驱动这一层,目前为止,抽象出了4层设备,一是如hw:0,0,二是plughw:0,0,三是default:0,四是default。至于 一是清楚了,二和二以上可以做数据转换,以支持一个动态的范围

【ALSA】关于alsa的总结

本秂侑毒 提交于 2019-12-04 03:32:22
一. alsa展现的三层结构: (1)audio interface: audio interface就是声卡,它含有hardware buffer,注意,这个hardware buffer是在声卡里面,不是内存。 (2)computer: 这个指的是计算机的内核和驱动(驱动由alsa提供),当(1)的audio interfacce引发中断,内核会捕捉到,再把处理移交alsa。 (3)application: 这个就是你写的程序,你开辟一个buffer,比如playback,就交给alsa来play。 在上面的框架下,流程如下: (1)playback: application开辟一个buffer,填上数据,调用alsa接口,alsa把buffer数据复制到其驱动的空间,再把数据交给 hardware buffer。 (2)record: 同playback,相似的。 二. 细节: 按照上面的流程,其中有许多细节我们可以加以控制,这里仅仅指出应用程序需要关心的: 1) 操作的设备: 在alsa驱动这一层,目前为止,抽象出了4层设备: 一是如hw:0,0,二是plughw:0,0,三是default:0,四是default至于 一是清楚了,二和二以上可以做数据转换,以支持一个动态的范围,比如你要播放7000hz的东西,那么就可以用二和二以上的。而你用7000hz作为参 数,去设置一

音频开源代码中重采样算法的评估与选择

匿名 (未验证) 提交于 2019-12-03 00:38:01
在音频软件实现中经常会遇到两个模块采样率不一致的情况,比如语音通话时采集到的PCM信号是16k Hz的,但编码时codec是AMR-NB(AMR-NB是8k Hz采样),这时就需要把16k Hz采样的PCM值转换成8k Hz采样的PCM值(这叫降采样或者下采样),然后再去做AMR-NB编码。再比如音乐播放时音源是44.1k Hz采样率编码的,但是播放时是48k Hz采样率的,这就需要把解码后的44.1k Hz采样率的PCM值转换成48k Hz采样的PCM值(这叫升采样或者上采样),然后再送给codec芯片播放。采样率转换(sampling rate converter, SRC)或者叫重采样有多种方法,简单的有线性插值法(算法简单,load小,但性能一般),复杂的有sinc方法(算法复杂,load大,但性能较好)。好多的音频类开源代码里都有重采样的实现,比如PJSIP和FFMPEG。重采样的原理这里就不详细介绍了,有兴趣的可以看相关文章。今天我们讲的是如何去评估这些开源代码里的重采样实现以及选择最适合的实现。评估主要基于频响特性,其次看CPU load。评估的开源实现是我用过的PJSIP和SILK codec。PJSIP里的重采样有两种实现(线性插值和sinc),通过开关控制选用哪种。SILK里的重采样用的是三次插值方法。对其他开源实现的评估类似。 在评估前先要做一些准备工作

语音接口参数转换

最后都变了- 提交于 2019-12-02 02:42:53
语音接口参数转换: import base64import urllib.parsefile1 = open("C:\\Users\\Administrator\\Desktop\\jinshu\\16k.pcm","rb") # 读取二进制文件na=file1.read()print(na)text = base64.b64encode(na) # 进行编码print(text)语音垃圾名称文件内容,需要base64编码,再进行urlencode;支持采样率:16000;仅支持单声道;比如语音内容是:安全套、塑料袋语音文件类型,支持pcm,wav,amr,m4a,推荐pcm;默认pcm UrlEncode编码/解码地址: http://tool.chinaz.com/tools/urlencode.aspx 请求成功如下图: 来源: https://www.cnblogs.com/zenghongfei/p/11726571.html

FFMPEG进阶系列02-ffmpeg命令详解2

泄露秘密 提交于 2019-11-27 22:28:20
文章目录 帮助信息 查看ffmpeg版本 查看formats 其他大类的查看 查看具体demuxer/muxer/decoder/encoder/filter所支持的参数 查看FLV封装器的参数支持 查看flv解封装器的参数支持 查看H264(AVC)的编码参数支持 查看音频支持的PCM格式以及声道布局 更多资料,更多分享 帮助信息 查看ffmpeg版本 通过ffmpeg -version查看ffmpeg的版本,这里所查看的版本,是详细的版本,包含libavformat、libavcodec、libavutil、libavfilter、libswscale、libswresample的版本,如图: ffmpeg.exe -version ffmpeg version 4.0 .2 Copyright ( c ) 2000 - 2018 the FFmpeg developers built with gcc 7.3 .1 ( GCC ) 20180722 configuration : -- disable - static -- enable - shared -- enable - gpl -- enable - version3 -- enable - sdl2 -- enable - bzlib -- enable - fon tconfig -- enable -