web-dev-qa-db-ja.com

linux arecord:マイク入力ではなくサウンドカード出力をキャプチャする

次のコマンドを使用して、サウンドカードの出力をキャプチャし、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(安定版)を実行しています。

21
user001

私は同じ問題を抱えており、別の解決策を見つけました here 。主なアイデアは、pacatを使用することです。私にとっては次のように機能します:

  1. モニターデバイスを探す:

    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```
    
  2. オーディオをファイルにキャプチャ:

    $ pacat --record -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor > dump.raw

  3. ファイルをWAVに変換します。

    $ sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 dump.raw output.wav

それでおしまい!

8
hochl

数年後、闘争は続きます...録音デバイスを指定する方法、見よ、そして見よ:

➜  ~ 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>

format of device id

6

ALSAループバックドライバーを使用することをお勧めします。それをロードするには:

Sudo modprobe snd-aloop

これにより、arecord -Lからの出力に新しいキャプチャデバイスが追加されます。

コンピューターに物理的なサウンドカードが1つしかない場合は、ホームフォルダーに次の内容のファイル.asoundrcを作成して、ループバックサウンドカードをすべてのアプリのデフォルトにできます。

pcm.!default {
    type hw
    card 1
    device 0
}

このファイルが配置されている間、すべてのアプリケーションからのサウンド出力は、実際のスピーカーではなくループバックアダプターに送られます。 arecordコマンドで正しいデバイスを指定し、完了したら.asoundrcファイルを削除して通常に戻ります。

6
beveradb

ハードウェアが出力のキャプチャをサポートしていません。データが実際の再生デバイスに入ると、消えてしまいます。

ハードウェアに書き込む前にオーディオデータを複製するソフトウェアを使用する必要があります。

PulseAudioの使用をお勧めします。そこで、出力の1つをキャプチャソースとして選択するだけです。 pavucontrol output monitoring

3
CL.
  1. PulseAudioボリュームコントロール->入力デバイスタブに移動します。下部で、「すべての入力デバイス」を表示することを選択します。 「内部オーディオアナログステレオのモニター」がミュートされていないかどうか、およびオーディオを再生すると音量が上下するかどうかを確認してください。

  2. Audio Recorder を使用して、Audio Source = Internal Audio Analog Stereo(Audio Input)を録音します。下のスクリーンショットを参照してください。

enter image description here

1
Zid

私はオーディオレコーダーをインストールしました: https://launchpad.net/audio-recorder これはオプションで必要なものを示しています...

enter image description here

0
SergioAraujo