首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android小菜鸡

    Andorid pcm转码wav

    hesong1120/article/details/79043482 最近工作开发中,碰到一个BUG,由于WebApp开发,一套H5代码适用于Android和IOS,但是发语音时,Android无法打开IOS的pcm Android中,想要播放,那么就需要单独判断pcm文件,转码给wav,再使用mediaplayer播放。 先上代码: /** * PCM文件转WAV文件 * @param inPcmFilePath 输入PCM文件路径 * @param outWavFilePath 输出WAV } } /** * 输出WAV文件 * @param out WAV输出文件流 * @param totalAudioLen 整个音频PCM 调用convertPcmToWav方法可以将pcm文件转化成wav文件。

    2.7K20发布于 2018-10-25
  • 来自专栏Linux内核深入分析

    Linux音频驱动-PCM设备

    .list: 用于将pcm设备链接起来,最终所有的pcm设备会放入snd_pcm_devices链表中。 .device: 该pcm的索引号。 pcm设备的创建 创建一个pcm设备的实例,使用snd_pcm_new函数。 (err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_PLAYBACK, playback_count)) < 0) { snd_pcm_free(pcm) PCM硬件操作函数集设置 实例化一个pcm设备之后,还需要通过snd_pcm_set_ops函数设置该硬件的操作集合。 设置当前pcm设备name, 以及具体的pcm设备类型,PCM_CAPTURE or PCM_PLAYBACK。 4.

    10.1K33发布于 2020-03-24
  • 来自专栏呱牛笔记

    PCM文件添加WAV头

    在asr平台实现pcm格式录制的文件增加wav头,发现根据网上给的方法添加wav头的wav文件播放异常,播放没有声音!     int bit_rate = sample_rate * channels * bits;//(sample_rate * channels * bits)/8; 2、文件总大小填的不正确; pcm 数据大小+44 - 8 = PCM数据大小+36     int file_size =   len + 44;      //04~07      header[4] = (char) ((file_size sample_rate * channels * bits)/8;      //      int sample_bit = bits ;    //      int data_size = len;     //pcm

    1.6K20编辑于 2023-05-02
  • 来自专栏落影的专栏

    Audio Unit播放PCM文件

    这是Audio Unit系列的第一篇,用Audio Unit播放PCM文件。 Audio Unit的知识点较多,围绕demo介绍如何使用Audio Unit。

    3.5K60发布于 2018-04-27
  • 来自专栏全栈程序员必看

    音频PCM编码「建议收藏」

    PCM编码 PCM就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。简而言之PCM就是对模拟信号先抽样,再对样值幅度量化,编码的过程。 相对自然界声音信号,任何音频编码都是有损的,在计算机应用中,能达到高保真的就是PCM编码,因此PCM约定成俗成了无损编码,对于声音而言,我们通常采用PCM编码。 例如 “44.1kHZ,16bit, 2channel” 格式,速率就是 44100 * 16 * 2 = 1411200 kpbs,如果pcm文件大小为10M,则播放时长 10 * 1024 * 1024

    1.7K40编辑于 2022-09-20
  • 来自专栏字节流动

    音频基础知识 - PCM 浅析

    PCM元数据 最常见的A/D转换是通过脉冲编码调制 PCM (Pulse Code Modulation)。 大多数PCM样本使用整形表示,但是在一些对精度要求比较高的场景,可以使用浮点类型表示PCM样本数据。 下面看一个具体的采样示例: ? PCM播放 PCM是原始采样数据,必须指定采样率、声道数和采样位数(大小端)才能播放。 通过ffplay播放PCM的命令如下所示: fplay -ar 44100 -channels 2 -f s16le -i test.pcm 参数说明: 1. -ar PCM采样率 2. Audacity功能很强大,对于PCM的波形(采样点值)、响度(db)和频谱,都可以直接查看,如下所示:PCM-波形 ? PCM-响度 ? PCM-频谱 ?

    4.9K21发布于 2021-03-16
  • 来自专栏C/C++与音视频

    wav文件提取出pcm数据

    ************************************************************************************* 文件功能:wav文件中提取pcm 数据 作者:HFL 日期:2014-1-12 说明:wav文件就是在pcm数据的基础上加了一文件头。 文件头的大小为44个字节(没有附件字段的情况,如果有附加字段问46个字节)       ,剔除文件头,就是纯pcm采样过来的数据。   pcm构成要素:采样率 ,声道个数,数据符号特性(一般8位都是无符号的) *************************************************************** ", "wb"))==NULL) { printf("Open the 2.pcm failed\n"); return ; } else { printf("Open the 2.pcm

    1.7K30编辑于 2022-06-14
  • 来自专栏C/C++与音视频

    基于alsa驱动架构的pcm播放

    <fcntl.h> int main(int argc, char *argv[]) {   long loops;   int rc;   int size;   snd_pcm_t *handle;   snd_pcm_hw_params_t *params;   unsigned int val;   int dir;   snd_pcm_uframes_t frames \n"); exit (-1 ); }   /* Open PCM device for playback. */   rc = snd_pcm_open(&handle, "default "unable to open pcm device: %s\n",             snd_strerror(rc));     exit(1);   }   SND_PCM_ACCESS_RW_INTERLEAVED);   /* Signed 16-bit little-endian format */   snd_pcm_hw_params_set_format

    1.2K30编辑于 2022-06-14
  • 来自专栏落影的专栏

    iOS音频能力提升——PCM基础

    本文主要围绕音频知识的基础——PCM,介绍PCM的原理和相关操作。 声音是模拟的连续信号,而计算机只能离散的存储。 为了使得计算机具备音频的能力,必须支持连续音频信号的离散化描述,而PCM具备这个能力。 总结起来就是三个步骤: 1、抽样; 2、量化; 3、编码; PCM基础概念 了解PCM的基本原理之后,再看看PCM衍生出来的常见概念。 1、声道; 录制和播放时,音频信号的数量。 =1411.2 Kbps PCM数据操作 了解完PCM的相关概念后,再来看看PCM相关的数据操作。 希望看完本文的你,对PCM有初步的认识。 PCM的数据操作部分,可以把样例代码放到Audio Unit播放PCM文件demo的PlayCallback方法中,体会下效果。

    3K50发布于 2018-04-27
  • 来自专栏韩曙亮的移动开发专栏

    【FFmpeg】ffmpeg 命令行参数 ⑦ ( 使用 FFmpeg 提取 PCM 音频数据 | PCM 音频格式 | 提取 PCM 音频格式常用参数 | 查询文档方法 )

    一、使用 FFmpeg 提取 PCM 音频数据 1、PCM 音频格式 PCM 全称 " Pulse Code Modulation " , 脉冲编码调制 , 该 音频数据 是未经压缩的 采样裸数据 , 只有 知道该数据的 采样率 / 采样位数 / 通道数 才能将该音频数据播放出来 ; PCM 数据是 最原始的音频数据 , 音频内容完全无损 , 但是 PCM 数据体积庞大 , 对 PCM 音频数据压缩 采样率 / 采样数 / 通道数 等核心数据 , 就是 WAV 文件 , 该格式的文件体积很大 ; 2、提取 PCM 音频格式常用参数 在 提取 PCM 音频格式常用参数 时 , 需要设置 PCM 数据的 : 小端模式 16 位 有符号整数 采样 ; pcm_s16be : 大端模式 16 位 有符号整数 采样 ; pcm_s32le : 小端模式 32 位 有符号整数 采样 ; pcm_s32be : 1、PCM 采样位数查询 上面播放 PCM 格式的音频文件 , 涉及到了设置 PCM 采样位数 , 可以通过如下的命令进行查询 ; 执行 ffmpeg -muxers | findstr PCM 命令

    5.3K10编辑于 2024-04-02
  • 来自专栏音视频修炼路

    Android OpenSL ES播放PCM 数据(九)

    前言 本章主要讲述如何通过Android OpenSL 实现播放 PCM 音频数据。 ,2}; SLDataFormat_PCM pcm={ SL_DATAFORMAT_PCM,//播放pcm格式的数据 2,//2个声道(立体声) SL_BYTEORDER_LITTLEENDIAN//结束标志 }; SLDataSource slDataSource = {&android_queue, &pcm // 主动调用回调函数开始工作 pcmBufferCallBack(pcmBufferQueue, NULL); 小结 通过上面五个步骤就完成了Android OpenGL ES播放pcm 功能,文章最后会附上demo链接,demo播放的pcm文件路径为 /Android/data/com.pengjie0668.opensles.demo/cache/temp.pcm github Demo

    1.5K50发布于 2021-01-10
  • 来自专栏曾大稳的博客

    MediaCodec硬编码pcm2aac

    MediaCodec是Android(api>=16)提供的一个多媒体硬解编码库,能实现音视频的编解码。

    1.6K20发布于 2018-09-11
  • 来自专栏python-爬虫

    python音频文件中pcm格式提取

    gpl-shared.zip #再解压把ffmpeg.exe所在路径配置环境变量中 二.命令行执行代码 ffmpeg -i 1.mp3 -f s16be -ar 16000 -ac 1 -acodec pcm_s16be 1.pcm 三.python执行代码 from ffmpy import FFmpeg #将mp3转化没pcm ff = FFmpeg(inputs={r'd:\test\1.mp3':"-i"}, outputs={r'd:\test\1.pcm':"-f s16be -ar 16000 -ac 1 -acodec pcm_s16be"}) print(ff.cmd) ff.run () #将pcm转化为mp3 ff1 = FFmpeg(inputs={r'd:\test\1.pcm':"-f s16be -ar 16000 -ac 1 -acodec pcm_s16be"},

    3.3K32发布于 2020-10-10
  • 来自专栏每日一篇技术文章

    AudioToolbox_如何录制PCM格式的数据

    ExtendedAudioFile.h: 定义用于将音频数据从文件直接转化为线性PCM接口,反之亦然。 ---- 接下来我们一个个头文件包含的函数都能干神马,加油! AudioConverter.h 作用: 转换各种线性PCM和压缩之间。 支持的转换: 1.PCM浮点数/整数/比特深度转换 2.PCM采样率转换 3.PCM交织和去交织 4.编码PCM压缩格式 5.PCM解码压缩格式 注意:一个audioconverter可以执行一个以上的 名词解释: PCM AudioServices.h audioservices提供了一种手段来播放音频比如UI音效。 分配缓冲区 队列缓冲区(audioQueueEnqueueBuffer,没有参数,没有包的描述) 回调接收缓冲器和将他们重新加入队列 参数说明: inFormat: 描述了被记录的音频格式(对于线性PCM

    1.8K10发布于 2018-09-14
  • 来自专栏音视频修炼路

    Android OpenSL 录制 PCM 音频数据(八)

    前言 本章主要讲述如何通过Android OpenSL 实现录制 PCM 音频数据。开发流程回顾可以看下笔者前面发布过的文章。 SHARED native-lib.cpp ) OpenSL ES 录制 PCM 音频数据流程主要有如下: 1、 新建native-lib.cpp文件, 、2声道、44100HZ、16bit */ SLDataFormat_PCM format_pcm = {SL_DATAFORMAT_PCM, 2, SL_SAMPLINGRATE_44 recorderRecord)->SetRecordState(recorderRecord, SL_RECORDSTATE_RECORDING); 小结 通过上面五个步骤就完成了Android OpenGL ES录制pcm 功能,文章最后会附送上demo链接,demo生成的pcm数据会保存在 /Android/data/com.pengjie0668.opensles.demo/cache/temp.pcm github

    1.4K60发布于 2021-01-10
  • 来自专栏呱牛笔记

    Windows版本ffmpeg编译,及重采样pcm实现

    之前做过Windows版本ffmpeg的编译,重新做一遍,发现有遗漏的细节没有记录,重新整理下。

    65110编辑于 2024-01-25
  • 来自专栏音视频技术学习笔记

    音视频技术(4)-SDL播放PCM

    SDL 是一套跨平台的音视频播放框架,对齐了底层硬件的差异,开发者可以专注于音视频的处理,本文记录在iOS上使用SDL播放pcm音频裸数据的实现过程。pcm是音频的裸数据。 (0); while (1) { if(fread(pcm_buffer, 1, pcm_buffer_size, fp) ! = pcm_buffer_size){ // fseek(fp, 0, SEEK_SET); // fread(pcm_buffer, 1, pcm_buffer_size \n", data_count); data_count += pcm_buffer_size; audio_len = pcm_buffer_size vn -ar 44100 -ac 2 -f s16le out.pcm 播放:ffplay -ac 2 -ar 44100 -f s16le out.pcm

    1.1K20发布于 2020-03-27
  • 来自专栏txp玩Linux

    Linux ALSA声卡驱动之三:PCM设备的创建

    一、PCM是什么: PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。 每个声卡最多可以包含4个pcm的实例,每个pcm实例对应一个pcm设备文件。pcm实例数量的这种限制源于linux设备号所占用的位大小,如果以后使用64位的设备号,我们将可以创建更多的pcm实例。 pcm,第一个pcm设备从0开始。 另一个用于设置pcm操作函数接口的api: void snd_pcm_set_ops(struct snd_pcm *pcm, int direction, struct snd_pcm_ops *ops ); 新建一个pcm可以用下面一张新建pcm的调用的序列图进行描述: 图3.1 新建pcm的序列图 snd_card_create pcm是声卡下的一个设备(部件),所以第一步是要创建一个声卡

    2.9K20编辑于 2024-01-10
  • 来自专栏Android知识点总结

    Android多媒体之认识声音、录音与播放(PCM)

    次,使用48K采样,一个周期中采样48,000/20=2400次 20KHz 频率即1s振动20K次,使用48K采样,一个周期中采样48K/20K=2.4次 声道数:单声道、双声道、多声道 码率:一个PCM ,这些数据显然我们是不想要的 在进行采样之前,先结合心理声学模型处理,可缩小采样范围,尽量去除掉无用的信息 科普就这么多,有个印象就行,平时拿来吹吹牛还是够的,下面进入正题 ---- 三、PCM 音频的捕获(AudioRecord) PCM(Pulse Code Modulation)--脉冲编码调制,今天只说PCM 主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化, 同时将抽样值按分层单位四舍五入取整量化 ,同时将抽样值按一组二进制码来表示抽样脉冲的幅值 PCM编码:最大程度的接近绝对保真,但是体积大 图书馆里不好意思说话,假装咳嗽了两声:(用软件AU打开的) ? 解析的是流,跟拓展名无关,拓展名是为了让软件识别文件 20190103140621.toly的文件用AU(音频编辑器)就打不开,改成.PCM就能打开 现在明白PCM编码和.PCM后缀名的区别了吗..

    4.2K30发布于 2019-01-07
  • 来自专栏txp玩Linux

    利用ffmpeg进行提取PCM数据和封装格式转换

    今天主要还是分享ffmpeg命令的一些操作:提前像素格式和PCM数据、如何利用ffmpeg进行命令转封装。 一、利用ffmpeg提取像素格式和PCM数据 1、提取YUV: 提取流媒体文件3秒数据,分变率和源视频一样: ffmepg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p 数据: 我们直接来看案例: ffmpeg -i buweishui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm ffmpeg -i buweishui.mp3 ;那这三种格式我们可以从哪里可以查看说明: s16le和pcm_s16le: ffmpeg -encoders | findstr pcm ffmpeg -muxers | findstr PCM : 输出格式为s16(效果差不多和s16le): 输出格式为pcm_s16le: 二、如何利用ffmpeg进行命令转封装 1、保持编码格式: ffmpeg -i test.mp4 -t 60

    3.6K50编辑于 2022-03-21
领券