Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将原始音频数据写入使用Alsa驱动程序C++捕获的文件

如何将原始音频数据写入使用Alsa驱动程序C++捕获的文件
EN

Stack Overflow用户
提问于 2020-07-23 07:46:38
回答 1查看 196关注 0票数 0

我正在尝试使用Alsa驱动程序将原始音频数据写入特定文件。

下面的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ofstream binaryFile ("file.raw", ios::out | ios::binary);

if(inputData==NULL)
{
    inputData = (uint8_t *)malloc(sizeOfDataInBytes);
}

while (audio_en)
{
    snd_pcm_sframes_t numAudioFramesRead = snd_pcm_readi(ndi_AudioSupport.m_captureHandle,inputData, 
    ndi_AudioSupport.m_numAudioFramesPerVideoFrame);
    
    if(numAudioFramesRead > 0)
    {
        binaryFile.write ((char*)inputData, sizeof (inputData));
    }
}

binaryFile.close();
EN

回答 1

Stack Overflow用户

发布于 2020-07-26 22:15:01

编写包括raw在内的多种不同音频格式的一种方法是使用sox音频库(libsox)。gtkIOStream中内置了libsox类和C++类。

捕获到原始音频文件的示例来自ALSACapture.C source code here。基本概念是打开捕获设备和原始音频文件,然后循环捕获音频并使用Sox写入文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  Capture capture("default"); // open the default ALSA capture device
  Sox<int> sox;
  int ret=sox.openWrite("audio.raw", fs, capture.getChannels(), pow(2.,(double)snd_pcm_format_width(format)));
  while (continue){
    capture>>buffer;
    sox.write(buffer);
  }

使用libsox的好处是您不再局限于原始音频格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63049328

复制
相关文章
Linux音频驱动-ALSA概述
ALSA(Advanced Linux Sound Architecture)是linux上主流的音频结构,在没有出现ALSA架构之前,一直使用的是OSS(Open Sound System)音频架构。关于OSS的退出以及ALSA的出现,可以看 Linux音频驱动-OSS和ALSA声音系统简介及其比较。
DragonKingZhu
2020/03/24
5.8K0
Linux音频驱动-ALSA概述
嵌入式Linux下音频开发: alsa-lib实现声音数据捕获保存与播放
项目主页下载地址:https://www.alsa-project.org/wiki/Main_Page
DS小龙哥
2022/01/12
6.1K0
嵌入式Linux下音频开发:  alsa-lib实现声音数据捕获保存与播放
如何将PCM格式的原始音频采样数据编码为MP3格式或AAC格式的音频文件?
    音频采样格式可以分为packed和planar两类。以packed格式保存的采样数据,各声道间按照采样值交替存储;以planar格式保存的采样数据,各个采样值按照不同声道连续存储
故乡的樱花开了
2023/10/22
5330
Matlab读取和写入音频文件
使用 audiowrite 函数将数据写入当前文件夹中名为 handel.wav 的 WAVE 文件。
用户9925864
2022/07/27
3.6K0
Matlab读取和写入音频文件
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
如果是在其他发行版linux系统上或者需要在嵌入式linux系统上使用alsa-lib库,可以下载alsa-lib源码包,自行编译。
DS小龙哥
2022/01/12
4.3K0
Linux下音频开发: 读取声卡PCM数据保存到文件(alsa-lib库)
Linux音频驱动-OSS和ALSA声音系统简介及其比较
概述 昨天想在Ubuntu上用一下HTK工具包来绘制语音信号的频谱图和提取MFCC的结果,但由于前段时间把Ubuntu升级到13.04,系统的声卡驱动是ALSA(Advanced Linux Soun
DragonKingZhu
2020/03/24
5.5K0
Linux音频驱动-ASOC(ALSA System on Chip)
此处还需引入之前说过的话: 新事物的出现必然是为了解决旧事物中的不足。这句话在现实生活中和程序世界中道理一样。ASOC的出现就是为了解决ALSA无法解决的问题。ALSA到底存在什么问题? 以及ASOC会以怎样的方式去解决ALSA存在的问题?
DragonKingZhu
2020/03/24
3.2K0
Linux音频驱动-ASOC(ALSA System on Chip)
Linux下使用alsa-lib库完成音频开发: 实现放音和录音(从声卡获取PCM数据保存、向声卡写PCM数据输出)
参考文章: https://blog.csdn.net/xiaolong1126626497/article/details/104916277
DS小龙哥
2022/01/12
9.1K2
[ 物联网篇 ] 40 - 嵌入式系统中的ALSA音频通路
之前调试的音频通路遇到的延迟问题智能音箱中音频通路的回采(Ref信号),这次更多的精力在分析ALSA Lib -> ALSA Driver 的音频流
程序手艺人
2021/02/04
8550
C++使用引用捕获异常
catch子句捕获异常时既可以按值传递,也可以按照引用传递,甚至按照指针传递,但推荐使用引用捕获异常。考察如下程序:
恋喵大鲤鱼
2018/08/13
5460
如何保证Android音频低延迟
为了更好的理解Android音频延迟产生的原因,最好将总的环路延迟分为以下两个部分:
阿利民
2022/05/16
2.2K0
C++ GDAL创建大量栅格文件并分别写入数据
  本文介绍基于C++语言GDAL库,批量创建大量栅格遥感影像文件,并将数据批量写入其中的方法。
疯狂学习GIS
2023/09/18
3850
C++ GDAL创建大量栅格文件并分别写入数据
什么是Android 10毫秒问题?
对超过4,238种不同Android手机型号/版本进行了音频延迟测试,数据表明Android在音频延迟问题上得到了很大改进,但随着当前媒体技术的发展,Android的这些优化还远远不够。迄今为止,Android N在音频延迟方面有任何改进,音频的延迟问题仍然制约着Android音频应用的发展。
阿利民
2022/05/16
1.1K0
什么是Android 10毫秒问题?
ALSA的入门介绍
ALSA由许多声卡的声卡驱动程序组成,同时它也提供一个称为libasound的API库。
刘盼
2023/01/05
2.5K0
如何使用Node写入文件
2018年8月22日发布 在Node.js中写入文件的最简单方法是使用fs.writeFile()API。 示例:
ccf19881030
2020/11/26
2.5K0
ALSA子系统 | ALSA Buffer的更新
PCM 数据管理可以说是 ALSA 系统中最核心的部分。不管是录音还是播放,都要用到buffer管理数据。
刘盼
2023/01/05
2K0
ALSA子系统 | ALSA Buffer的更新
Android audio_audiomack安卓版下载
音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。
全栈程序员站长
2022/10/03
1.3K0
Android audio_audiomack安卓版下载
C++ OpenCV使用VideoWriter写入视频
int fourcc, // 编码形式,使用 CV_FOURCC()宏
Vaccae
2019/07/24
11K0
python 将读取的数据写入txt文件_c中怎样将数据写入txt文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.4K0
点击加载更多

相似问题

在C++中用ALSA捕获默认音频流

15

Simulink上的ALSA音频捕获模块

12

QT6 C++中音频捕获原始数据的选项

10

黑名单音频驱动程序杀死ALSA

13

ALSA/脉冲音频

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文