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音频调试 1 找不到配置项 在amixer controls指令找不到Master Playback Volume配置项 xff0c 查阅资料可知 softval类型有些需要配置一次才能出现 xff0c 执行指令 在etc asou
  • 菜鸟修炼笔记-alsa-调节音频音量大小

    alsa 调节音频音量大小 前言一 方法一 xff1a 直接放大缓存中的数据1 基本原理2 相关尝试和结果2 1 在播放前放大音频缓存数据2 2 在录制前放大缓存 二 方法二 xff1a 在linux终端直接设置alsa的参数 1 基本原理
  • 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
  • Linux 下ALSA音频工具amixer,aplay,arecord使用

    ALSA音频工具amixer aplay arecord ALSA音频工具编译安装 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • alsa amixer 使用介绍

    alsa utils 提供的工具中 xff0c arecord 可以用来录音 xff0c aplay 可以用来播放 xff0c amixer 可以用来控制音量 增益等 amixer controls numid 61 34 iface 61
  • 录制成WAV文件

    自从我发帖以来这个问题 我一直在尝试自己从原始 PCM 数据编写一个有效的 WAV 文件 我已经成功编写了 FLAC 转换器 经过测试并且可以工作 但它不会对我一直在编写的 WAV 文件进行编码 我不确定我做错了什么 我一直在网上搜索其他个
  • Raspberry ALSA 声音输出/输入从机

    我正在尝试设置一台设备用于播放 另一台设备用于捕获 我的nano etc asound conf有这个 pcm default type asym playback pcm plughw 1 1 capture pcm plughw 1 0
  • 从 C 代码设置 ALSA 主音量

    我一直在寻找一个简单的 C 代码示例来设置 ALSA 混音器的主音量 但找不到任何简单的内容来完成这个所谓的常见操作 我对 ALSA 完全不熟悉 所以制作我自己的最小示例需要时间 如果有人能提供一个 我会很高兴 以下内容对我有用 参数体积应
  • 在 NodeJS 中写入音频文件时读取音频文件

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

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

    我想使用alsa实现全双工通信 我首先编写了捕获和回放程序 并使用 UDP 通信将数据从捕获的进程传输到回放进程 当我运行两个进程时工作正常 其中一个正在捕获 另一个正在播放 将其视为从 A 到 B 的半双工 当我尝试实现另一个半双工 从
  • alsa_aplay 不在 Android 上录制

    我刚刚开始研究 android 我试图了解 android 音频子系统 alsa 是如何工作的 我正在 windows 7 64 位 上运行的虚拟盒中运行 android 映像 我正在摆弄 alsa utils 来录制声音 我试过alsa
  • 安卓 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
  • ALSA中句号的含义

    我在 Linux 上使用 ALSA 和音频应用程序 我发现很棒的文档解释了如何使用它 1 http www linuxjournal com article 6735 page 0 1 and this one http users sus
  • 将 apply 的管道输出传送到 centos 中的记录

    我正在尝试自动化 websocket 客户端的一些测试 该客户端根据命令连接到服务器 该服务器基本上是一个语音到文本引擎 客户端支持来自麦克风的音频流 这样人们就可以实时录制自己的声音并将其传输到引擎 我在 centos 虚拟机中运行客户端
  • ALSA 记录 - 了解内存映射

    我尝试使用 ALSA 从 USB 音频设备获取输入并将其作为一系列内容写入磁盘signed short价值观 我最终得到的是看似有效的数据块 其中散布着大块的零 我猜测我的缓冲区设置不正确并且没有正确使用内存映射 我正在尝试什么 采样率 8
  • 在 Android 中重定向音频/创建备用声音路径

    有人有在 Android 中重定向音频或创建新声音路径的经验 使用 OpenSL ES ALSA 等 吗 最终目标是创建一个虚拟麦克风来取代外部麦克风 人们可以播放音频文件 就像对着麦克风说话一样 访问麦克风的应用程序AudioSource
  • Alsa:如何在 2 个输出上复制流并保存系统配置?

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

随机推荐