我正在尝试录制扬声器的输出,但当我这样做时,它也会从麦克风录制。我只想录制非麦克风设备。
试:
$ (AUDIODEV=hw:0,0; rec test.mp3)
$ rec -d hw:0,0 test.mp3
我也尝试过 ffmpeg:
$ ffmpeg -f alsa -i hw:CARD=PCH,DEV=0 test.mp3
$ ffmpeg -f alsa -i front:CARD=PCH,DEV=0 test.mp3
$ ffmpeg -f alsa -i surround40:CARD=PCH,DEV=0 test.mp3
我见过一些复杂的东西,例如:
$ parec -v -d analog-output-speaker | sox -t raw -e signed-integer b 16 -r 44100 -c 2 test.mp3
在线提出,但这仍然记录麦克风,并带有过时的 sox 选项。
如何在 ubuntu 14.04+ 中仅记录非麦克风输入?
答案1
脉冲音频
检查可用资源
$ pactl list short sources 0 alsa_output.pci-0000_00_05.0.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 1 alsa_input.pci-0000_00_05.0.analog-stereo module-alsa-card.c s16le 2ch 44100Hz SUSPENDED
指定监视设备作为录音命令的输入。
使用
avconv
/ffmpeg
安装它(仅适用于
avconv
)sudo apt-get update sudo apt-get install libav-tools
记录使用:
avconv -f pulse -i alsa_output.pci-0000_00_05.0.analog-stereo.monitor test.mp3
或者
ffmpeg -f pulse -i alsa_output.pci-0000_00_05.0.analog-stereo.monitor test.mp3
据我所知,Ubuntu 只安装了一个工具,另一个只是别名(之后,libav 从 ffmpeg 分叉)
$ file /usr/bin/avconv /usr/bin/avconv: symbolic link to ffmpeg
使用
sox
安装所需的格式
sudo apt-get install libsox-fmt-pulse libsox-fmt-mp3
或者使用这个来安装所有格式
sudo apt-get install libsox-fmt-all
记录使用:
sox -t pulseaudio alsa_output.pci-0000_00_05.0.analog-stereo.monitor -t mp3 test.mp3
阿尔萨斯大学
直接使用ALSA,参考:https://trac.ffmpeg.org/wiki/Capture/ALSA
检查录音设备
arecord -l
记录(改变相应的<card>
和<device>
索引)
ffmpeg -f alsa -i hw:<card>,<device> test.mp3
GUI 工具
还有一些高级 GUI 工具,例如:大胆。
答案2
此方法显示如何录制计算机上正在播放的任何音频,类似于在 Windows 中录制“立体声混音”。这使得录制任何应用程序播放的音频(包括 Flash 视频)成为可能。
我使用的是 Ubuntu 标准安装中的录音机应用程序。要使用其他程序(如 Audacity)进行设置,只需按照这些说明进行替换即可。
- 使用或 Ubuntu 软件中心安装
pavucontrol
(PulseAudio 音量控制) 。apt-get
- 打开 PulseAudio 音量控制。它应该位于应用程序菜单的“声音和视频”下。
- 打开录音机并开始录音。此时播放任何声音都会有所帮助,因为一旦完成,您的音量指示器就会做出反应。
- 转到 PulseAudio 音量控制窗口中的“录音”选项卡。
- 确保在“录制”选项卡的下拉菜单中选择了“应用程序”。
- 从应用程序列表的录音机条目中的“录制流来自”菜单中选择“内部音频模拟 Atereo 监视器”。
这似乎是持久的,所以您只需执行一次,但您必须重复这些步骤才能在另一个应用程序中进行记录。
本答案全部归功于这个帖子。