aplay 使用文件而不是 stdin 和 stdout 通过管道传输到 arecord

2024-01-10

下面的命令将记录来自默认设备的数据并将其输出到 stdout,aplay 将播放来自 stdin 的数据。

arecord -D hw:0  | aplay -D hw:1 -

为什么我们更喜欢 stdin 和 stdout 而不是如下所示写入文件并从中读取?

arecord -D hw:0 test.wav | aplay -D hw:1 test.wav

使用管道进行此操作比使用文件更加高效和有效,原因如下:

1) 管道(|)是一种进程间通信技术。一个进程的输出使用基于内核的缓冲区直接发送到另一进程的输入。因此,这比将某些内容写入硬盘中的文件并从中读取速度更快。然而,这也取决于其他因素。通常,内核还会从缓冲区和磁盘缓存中写入和读取小文件。

2)使用进程间通信技术也有助于获得并发操作。相反,如果您必须向文件写入内容然后从中读取内容,则必须分步骤执行,因此您将失去并发性。

我想你的意思是

arecord -D hw:0 test.wav && aplay -D hw:1 test.wav

代替

arecord -D hw:0 test.wav | aplay -D hw:1 test.wav
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

aplay 使用文件而不是 stdin 和 stdout 通过管道传输到 arecord 的相关文章

  • Alsa交叉编译

    alsa交叉编译 下载源码 需要编译两个库 首先编译lib库 configure span class token parameter variable host span span class token operator 61 span
  • 菜鸟修炼笔记-alsa-调节音频音量大小

    alsa 调节音频音量大小 前言一 方法一 xff1a 直接放大缓存中的数据1 基本原理2 相关尝试和结果2 1 在播放前放大音频缓存数据2 2 在录制前放大缓存 二 方法二 xff1a 在linux终端直接设置alsa的参数 1 基本原理
  • Linux ALSA 之四:Tinyalsa->Alsa Driver Flow分析

    Tinyalsa gt Alsa Driver Flow 一 概述二 Tinyalsa2 1 tinypcminfo2 2 tinymix2 3 tinyplay2 4 tinycap 三 Tinyalsa gt alsa driver f
  • Linux ALSA 之十:ALSA ASOC Machine Driver

    ALSA ASOC Machine Driver 一 Machine 简介二 ASoC Machine Driver2 1 Machine Driver 的 Platform Driver amp Platform Device 驱动模型2
  • Linux ALSA 之十二:ALSA ASOC Kcontrol

    ALSA ASOC Kcontrol 一 结构体 snd kcontrol new二 ASoC 系统定义的 kcontrol 宏2 1 SOC SINGLE2 2 SOC SINGLE TLV2 3 SOC DOUBLE2 4 Mixer
  • 龙芯1B核心板使用alsa音频播放设置,aplay播放

    龙芯1B核心板是默认启用alsa音频工具的 只需要进行一些配置就能使用 1 先检查你的板子的alsa工具是否正常 aplay l 可以查看 xff0c 是否已正确安装音频驱动 如果正常 xff0c 能看到你的音频驱动的信息 可能会出现 xf
  • yum解决办法:fatal error: alsa/asoundlib.h: No such file or directory #include <alsa/asoundlib.h>

    错误 libavdevice alsa c 31 28 fatal error alsa asoundlib h No such file or directory include lt alsa asoundlib h gt 安装命令 s
  • DAPM之一:概述

    DAPM Dynamic Audio Power Management 对应结构体是snd soc dapm widget和snd soc dapm route 对应的操作函数是snd soc dapm new controls snd s
  • ALSA:防止扬声器欠载的方法

    我正在非交错模式下播放单通道音频 当我将音频数据写入扬声器时 我遇到了问题 ALSA lib pcm c 7339 snd pcm recover underrun occurred 我是这样写的 printf d snd pcm avai
  • Linux ALSA/声音 API 问题 - 如何静音?

    如何使用 C 语言静音 有ALSA函数调用吗 是否有任何其他函数调用 API 可以使麦克风静音 我已经编写了一些代码来使用 ALSA 进行音频播放 并且我注意到声音开始播放之前有延迟 如何减少声音播放的延迟或延迟 x include
  • 使用 PyAudio 防止 ALSA 欠载

    我编写了一个小程序 它记录麦克风的声音并将其通过网络发送并在那里播放 我正在使用 PyAudio 来完成此任务 它工作得几乎很好 但在两台计算机上我都从 ALSA 收到错误 表明发生了欠载 我在谷歌上搜索了很多相关内容 现在我知道什么是欠载
  • GNU Radio:使用声音输出作为输入源

    In gnuradio 伴侣我使用音频源块作为下一个块的输入信号 一切工作几乎都很好 唯一的小问题是我从麦克风收到信号 这是正常行为 我宁愿直接播放音频信号 而不必通过我的扬声器 我房间的空气和麦克风 所有这些都会产生信号损失并增加噪声 我
  • 在 NodeJS 中写入音频文件时读取音频文件

    我正在使用 ffmpeg 通过 alsa 捕获音频并将其写入 wav 文件 但在编写过程中 我需要将捕获的音频发送给第三方 我尝试过几种方法 包括节点生长文件但没能成功 有没有一种方法可以将文件作为流读取 只要它正在写入并根据需要进行处理
  • 在设备树中注册 snd-soc-dummy

    我正在尝试在我的设备树源文件中注册 soc utils 中提供的 ALSA 虚拟编解码器 以将其与 i2s 设备驱动程序 sun8i i2s 一起使用 我尝试在 i2s 配置中设置 sound dai 字段 如下所述 https patch
  • 安卓 OpenAL?

    有没有人为 Android 构建过 OpenAL 或者在系统上找到了它的共享库 这似乎是任何类型的游戏的明显需求 但没有可用的资源 据我所知 Android java 声音库似乎无法进行音高变化 因此似乎需要 OpenAL 我知道 Open
  • ALSA:不支持非交错访问?

    ALSA s snd pcm hw params set access http www alsa project org alsa doc alsa lib group p c m h w params html ga4c8f1c6329
  • Android:如何配置“tinymix”以使用“tinycap”录制系统音频

    在 Android 中 目前无法使用 Android SDK 录制系统音频 因此 我尝试了一下 TinyALSA 自 Android 4 起 希望可以重新路由音频输出 以便可以录制它 当我在设备上调用 tinymix 时 我得到以下配置 c
  • 通话录音 - 使其在 Nexus 5X 上运行(可以生根或定制 ROM)

    我正在尝试使用AudioRecord with AudioSource VOICE DOWNLINK在 Nexus 5X Android 7 1 我自己的 AOSP 版本 上 我已经过了权限阶段 将我的 APK 移至特权应用程序 并进行了调
  • Alsa:如何在 2 个输出上复制流并保存系统配置?

    我的声卡是 Audigy SE SB0570 我想不仅在扬声器上而且在耳机上同时播放相同的立体声流 我在空的 asoundrc 上尝试这个配置 pcm quad type multi slaves a pcm hw 0 0 green ho
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set

随机推荐