QT6 C++ 中音频捕获原始数据的选项[关闭]

Posted

技术标签:

【中文标题】QT6 C++ 中音频捕获原始数据的选项[关闭]【英文标题】:options for Audio capture raw data in QT6 C++ [closed] 【发布时间】:2021-02-17 04:27:01 【问题描述】:

由于 QT6 对多媒体的支持已推迟到今年晚些时候,从麦克风捕获音频的替代库是什么? 我已经使用 OpenCV 使我的网络摄像头工作,我正在寻找替代库来捕获音频并获取原始音频缓冲区(而不是转储到文件),因为我需要使用我们的自定义压缩对其进行编码并发送到网络。 顺便说一句,我在 C++ 中。

【问题讨论】:

【参考方案1】:

音频捕获因操作系统和某些硬件而异。一般来说,我在这里添加一些用于不同的视图。

WASAPI - Windows 音频会话 API (WASAPI) 使客户端应用程序能够管理应用程序和音频端点设备之间的音频数据流。

libsoundio - libsoundio 是对各种声音驱动程序的轻量级抽象。它提供了一个有据可查的 API,无论它连接到什么声音驱动程序,它都能始终如一地运行。 麻省理工学院许可

PulseAudio - PulseAudio 专为 Linux 系统设计。它还被移植到 Solaris、FreeBSD、NetBSD、MacOS X、Windows 2000 和 Windows XP,但我们目前没有使用非 Linux 系统的维护人员

GStreamer - GStreamer 是一个用于构建媒体处理组件图的库。它支持的应用范围从简单的 Ogg/Vorbis 播放、音频/视频流到复杂的音频(混合)和视频(非线性编辑)处理。 GStreamer 在 LGPL

下发布

RtAudio - 一组 C++ 类,为 Linux(本机 ALSA、JACK、PulseAudio 和 OSS)、Macintosh OS X(CoreAudio 和 JACK)和 Windows(DirectSound、 ASIO 和 WASAPI) 操作系统。 类似于 MIT 许可证

PortAudio - PortAudio 是一个免费、跨平台、开源的音频 I/O 库。它让您可以使用“C”或 C++ 编写简单的音频程序,这些程序可以在许多平台上编译和运行,包括 Windows、Macintosh OS X 和 Unix (OSS/ALSA)。 与 GNU GPL 兼容

JUCE - JUCE 是一个开源的跨平台 C++ 应用程序框架,适用于桌面和移动应用程序,包括 VST、VST3、AU、AUv3、RTAS 和 AAX 音频插件。核心 JUCE 模块根据 ISC 许可 的条款获得许可。 GPL/商业许可涵盖了其他模块。

【讨论】:

以上是关于QT6 C++ 中音频捕获原始数据的选项[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C++ 中使用 libsndfile 从 WAV 文件中提取原始音频数据

从音频输入中捕获原始音频以在 Mac 上进行实时处理的最简单方法

使用 C++ 教程和示例代码进行音频流传输 [关闭]

确定音频处理中的延迟

如何在 Windows 10 上使用 C++ 将连续的原始音频数据记录到循环缓冲区中?

在 C++ 中捕获音频