My rig, IC-7410, has a USB I/F for sound output and rig controls. The USB sound captured with your PC can be fed into Ices, a source client to provide an audio stream to, Icecast2, a streaming server, via Alsa. Let’s see how Alsa recognizes your USB I/F.
% arecord -l **** List of CAPTURE Hardware Devices **** card 0: MID [HDA Intel MID], device 0: ALC889 Analog [ALC889 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: MID [HDA Intel MID], device 2: ALC889 Alt Analog [ALC889 Alt Analog] Subdevices: 2/2 Subdevice #0: subdevice #0 Subdevice #1: subdevice #1 card 1: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0
You can see that, in this particular case, the USB Audio is at card 1 and device 0, or hw:1,0 in alsa terminology.
% cat ices.xml <input> <module>alsa</module> <param name="rate">44100</param> <param name="channels">2</param> <param name="device">hw:1,0</param> <!-- Read metadata (from stdin by default, or --> <!-- filename defined below (if the latter, only on SIGUSR1) --> <param name="metadata">1</param> <param name="metadatafilename">test</param> </input>
Then you will start both ices and icecast2.
% ices ices.xml % icecast -c icecast.xml