次のコマンドを使用して、サウンドカードの出力をキャプチャし、Vorbis ogg形式でエンコードしようとしています。
arecord -f cd -t raw | oggenc - -r -o file.ogg
ただし、サウンドカードの出力ではなく、コンピューターのマイク入力が記録されます。
コマンドarecord -l
の出力は
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
コマンドarecord -L
の出力は、この Pastebinエントリ に含まれています。
arecord
のマニュアルページは、-D
フラグを使用して入力デバイスを選択できることを示していますが、構文例は示していません。
arecord
の入力をマイクからサウンドカードに変更する方法を教えてください。 AudacityなどのGUIベースの代替手段には興味がありません。ありがとう。
編集:arecord
バージョン1.0.25、vorbis-tools
バージョン1.4.0、およびALSAドライバーバージョン1.0.24でDebian 7.0(安定版)を実行しています。
私は同じ問題を抱えており、別の解決策を見つけました here 。主なアイデアは、pacat
を使用することです。私にとっては次のように機能します:
モニターデバイスを探す:
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor/#0: Monitor of HDA NVidia Digital Stereo (HDMI)
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#2: Monitor of Built-in Audio Analog Stereo```
オーディオをファイルにキャプチャ:
$ pacat --record -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor > dump.raw
ファイルをWAVに変換します。
$ sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 dump.raw output.wav
それでおしまい!
数年後、闘争は続きます...録音デバイスを指定する方法、見よ、そして見よ:
➜ ~ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
➜ ~ arecord -f S16_LE -r 44100 --device="hw:1,0" plik.wav
Recording WAVE 'plik.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono
^C
Aborted by signal Interrupt...
したがって、デバイス文字列の形式はhw:<card>,<device>
ALSAループバックドライバーを使用することをお勧めします。それをロードするには:
Sudo modprobe snd-aloop
これにより、arecord -L
からの出力に新しいキャプチャデバイスが追加されます。
コンピューターに物理的なサウンドカードが1つしかない場合は、ホームフォルダーに次の内容のファイル.asoundrc
を作成して、ループバックサウンドカードをすべてのアプリのデフォルトにできます。
pcm.!default {
type hw
card 1
device 0
}
このファイルが配置されている間、すべてのアプリケーションからのサウンド出力は、実際のスピーカーではなくループバックアダプターに送られます。 arecordコマンドで正しいデバイスを指定し、完了したら.asoundrc
ファイルを削除して通常に戻ります。
ハードウェアが出力のキャプチャをサポートしていません。データが実際の再生デバイスに入ると、消えてしまいます。
ハードウェアに書き込む前にオーディオデータを複製するソフトウェアを使用する必要があります。
PulseAudioの使用をお勧めします。そこで、出力の1つをキャプチャソースとして選択するだけです。
PulseAudioボリュームコントロール->入力デバイスタブに移動します。下部で、「すべての入力デバイス」を表示することを選択します。 「内部オーディオアナログステレオのモニター」がミュートされていないかどうか、およびオーディオを再生すると音量が上下するかどうかを確認してください。
Audio Recorder を使用して、Audio Source = Internal Audio Analog Stereo(Audio Input)を録音します。下のスクリーンショットを参照してください。
私はオーディオレコーダーをインストールしました: https://launchpad.net/audio-recorder これはオプションで必要なものを示しています...