shell - 将程序的声音录制到麦克风的脚本

标签 shell audio pulseaudio

我想制作一个 shell 脚本来记录程序的声音并将其作为 linux 上的麦克风条目。

例如,我正在 youtube 上听音乐,我希望将音乐发送到我的 Skype 对话而不是我的声音。

最后但并非最不重要的一点是,我知道如何使用 pavucontrol,我必须转到“录制”并切换“录制流自”,但我想从命令行执行完全相同的操作,而不是使用桂。

我试过这个:

pactl load-module module-loopback source=1 sink=2

(其中 1 是我的桌面声音,2 是模拟立体声双工(但它还包括我输入之上的正常声音......)并且它没有按预期工作。我不知道该怎么做。

谢谢

最佳答案

module-loopback只能用于将源短路到接收器。 (即麦克风到扬声器。)您在 pavucontrol 中找到的开关可以通过命令行访问

 pactl move-source-output <source output> <source>

您可以通过以下方式获取源输出 ID
pactl list source-outputs

当一个程序正在录制时,以及使用的源列表
pactl list sources

您还可以按名称提供源,例如combined.monitor .

我刚刚用 mplayer 和 audacity 试了一下,发现了两个陷阱:
  • 如果显示器是立体声并且您的默认源是单声道,则应用程序可能不会
    比如被改道。您可以使用
    module-remap-source
    解决方法:将监视器重新映射到一个单声道并将源输出移动到
    新创建的重新映射的源。
  • 在此工作之前,您可能需要在 pavucontrol 中取消对监控设备的静音。来自
    命令行这可以使用 pactl set-source-mute 来完成. (见 man pactl )
  • 关于shell - 将程序的声音录制到麦克风的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19226955/

    相关文章:

    android - 从 ADB Logcat 检测到行后如何运行命令?

    bash - 通过 unix shell 管道

    audio - ffmpeg,如何连接两个流,一个有音频,一个没有音频

    java - Java中如何合成声音?

    c - 使用 libpulse 播放多个流

    bash - find -mtime 超过 1 小时的文件

    python - Python 中等效的 Linux shell 源命令

    audio - 在 Asterisk 音乐中播放动态声音文件

    windows - 在 Windows 上使用 Youtube-dl 提取 MP3 的问题

    ubuntu - Pulseaudio不能永久工作