Mit*_*ops 5 audio-recording sox
我正在尝试记录扬声器的输出,但是当我这样做时,它也会从麦克风记录。我只想录制非麦克风设备。
试:
$ (AUDIODEV=hw:0,0; rec test.mp3)
$ rec -d hw:0,0 test.mp3
Run Code Online (Sandbox Code Playgroud)
我也试过 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
Run Code Online (Sandbox Code Playgroud)
我见过一些复杂的东西,例如:
$ parec -v -d analog-output-speaker | sox -t raw -e signed-integer b 16 -r 44100 -c 2 test.mp3
Run Code Online (Sandbox Code Playgroud)
在线提议,但这仍然记录麦克风,并带有过时的袜子选项。
如何在 ubuntu 14.04+ 中仅录制非麦克风输入?
检查可用的来源
$ 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
Run Code Online (Sandbox Code Playgroud)
指定监控设备作为录制命令的输入。
使用avconv/ffmpeg
安装它(仅适用于avconv)
sudo apt-get update
sudo apt-get install libav-tools
Run Code Online (Sandbox Code Playgroud)
记录使用:
avconv -f pulse -i alsa_output.pci-0000_00_05.0.analog-stereo.monitor test.mp3
Run Code Online (Sandbox Code Playgroud)
或者
ffmpeg -f pulse -i alsa_output.pci-0000_00_05.0.analog-stereo.monitor test.mp3
Run Code Online (Sandbox Code Playgroud)
AFAIK,Ubuntu 只安装一个工具,另一个只是别名(之后,libav 是从 ffmpeg 分叉出来的)
$ file /usr/bin/avconv
/usr/bin/avconv: symbolic link to ffmpeg
Run Code Online (Sandbox Code Playgroud)
使用sox
安装所需的格式
sudo apt-get install libsox-fmt-pulse libsox-fmt-mp3
Run Code Online (Sandbox Code Playgroud)
或安装所有格式
sudo apt-get install libsox-fmt-all
Run Code Online (Sandbox Code Playgroud)
记录使用:
sox -t pulseaudio alsa_output.pci-0000_00_05.0.analog-stereo.monitor -t mp3 test.mp3
Run Code Online (Sandbox Code Playgroud)
直接使用ALSA,参考: https: //trac.ffmpeg.org/wiki/Capture/ALSA
检查录音设备
arecord -l
Run Code Online (Sandbox Code Playgroud)
记录(改变对应<card>和<device>索引)
ffmpeg -f alsa -i hw:<card>,<device> test.mp3
Run Code Online (Sandbox Code Playgroud)
还有一些高级 GUI 工具,例如:audacity。