i have VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller . i am able to stream video fine using v4l2 and video device name /dev/video0. the audio that i want to stream is connected to one of my envy24 inputs. no metter what audio device i try to choose (/dev/adsp,/dev/audio,/dev/audio1,/dev/dsp,/dev/dsp1) i get VLC is unable to open the MRL alsa:///dev/[device_name]. any ideas ?
For me in most cases hw:x,0 works (x number of soundcard), but it does not work for one card - my cakewalk ua-1g - I get the same error. I'm not 100% sure but it seems that the format is s16le (16bit little endian) so this might file if the input does not match the format. In my case I probably need 24bit. Look in /proc/asound/cardx/... (like stream0) or directly in /proc/asound/ for some informations about the exact sample format.
The correct setting is to use the sample format S24_3LE (note the 3) for my sound card (24 bit signed little endian). arecord should show a summary of the exact sample format to use. On the alsa user ML I read
The envy chips are funny, they always capture something like 10 channels, and you need to reduce it to 2 if you want to save to a common 2-channel file. "plughw" can do this, so try,
arecord -f dat -D plughw:0 test.wav
As plughw works in vlc as well you can try that alternatively to dsp recording. Changing the sample format in vlc requires some digging in the vlc Wiki or docs and probably editing ~/.vlc/vlcrc. The above format is not stated in http://wiki.videolan.org/Raw so plughw is probably the best option.
with arecord -L i got the list of channels i could use but it seems that no matter what i choose i can't hear sounds. i solved the issue by compiling vlc with oss support and using my alsa's oss emulated device /dev/dsp.