hw:0,0ってなんぞ

avconvでALSAデバイスを利用する方法を調べていたらhw:0,0という謎の記述を見つけた。

ALSA Input

One alternative is to go via ALSA. A similar command to above would be

ffmpeg -ac 1 -f alsa -i hw:0,0 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234

I’m not sure how this will affect the CPU usage.

これの意味するのはなんだろうか。

参考:

サウンドカードIDとデバイスID

hw:X,Y

X
サウンドカードID
Y
デバイスID

を示している。

hw:0,0 specifies the default device, on the default sound card. To access your second soundcard’s first device, you would specify hw:1,0. These are specified in your .asoundrc. More on all of this here.

JohnT’s answer gives a good basic. I’ll follow it up with how to find the devices on your system. Use aplay -l to get a list of the devices on your system. The hw:X,Y comes from this mapping of your hardware – in this case, X is the card number, while Y is the device number.

$ aplay -l   # note lower-case "L" option
**** List of PLAYBACK Hardware Devices ****
card 0: T71Space [Terratec Aureon 7.1-Space], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 1: IEC1724 IEC958 [IEC1724 IEC958]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: T71Space [Terratec Aureon 7.1-Space], device 2: ICE1724 Surrounds [ICE1724 Surround PCM]
  Subdevices: 3/3
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2

認識されているデバイス一覧を調べる方法は

にまとめた。取得した一覧でサウンドカードID,デバイスIDの組み合わせはこのようになる。

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CS4206 Analog [CS4206 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0                                                    //hw:0,0
card 1: U0x46d0x821 [USB Device 0x46d:0x821], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0                                                    //hw:1,0

入力デバイスが複数認識されると、サウンドカードに紐づくSubdeviceの数が増える。