Shell do Windows: como posso obter o (s) nome (s) do (s) dispositivo (s) de áudio?

Não tenho certeza se isso é estritamente uma questão de programação, desde que não me importe em usar software adicional para resolver o problema, desde que ele continue sendo programável ou em linha de comando (isto é: uma solução que não seja da GUI ) Enfim, eu postei outra pergunta (um pouco diferente) emSuperusuário. A propósito, eu atualizarei aqui se eu receber a resposta lá.

Meu programa do Windows (apenas um script de shell)chama a linha de comando do VLC a fim degravar audio da placa de áudio e transmita-a, como:

vlc dshow:// :dshow-vdev=none :dshow-adev="SoundMAX HD Audio I" :std{mux=ts,access=http,dst=:8080} :sout-keep [rest of the cmdline not relevant]

Contanto que possa havervários dispositivos de áudio em um computador (webcam, várias placas de áudio, dispositivos bluettoth ... etc), preciso obter programaticamente onome deles.

Eu tenho usado o FFMPEG até agora:

ffmpeg -list_devices true -f dshow -i dummy

... mas às vezes não funciona bem, por exemplo:

d:\Utils\FFMPEG\bin>ffmpeg -list_devices true -f dshow -i dummy
ffmpeg version N-72460-g11aa050 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (GCC)  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --ena
ble-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
  libavutil      54. 26.100 / 54. 26.100
  libavcodec     56. 41.100 / 56. 41.100
  libavformat    56. 34.100 / 56. 34.100
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 16.101 /  5. 16.101
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[dshow @ 0000000000363520] DirectShow video devices (some may be both video and
audio devices)
[dshow @ 0000000000363520] Could not enumerate video devices (or none found).
[dshow @ 0000000000363520] DirectShow audio devices
[dshow @ 0000000000363520] Could not enumerate audio only devices (or none found
).
dummy: Immediate exit requested

A ferramenta de linha de comandoSystemInfo não funciona:

C:\>systeminfo | find "audio" /i

C:\>

Pesquisando por dentroregedit não encontrou nada sobre o meu exemplo da placa de som (SoundMAX HD Audio I)

Não existe outra maneira mais confiável de programarobter o (s) dispositivo (s) de som nome (s)?

Se possível, eu preferiria obter respostas para o Windows XP e Vista ou posterior.

Adicionaltestes realizado:

Instalou o MicroSoft .NET FrameWork v4.5.2 mais recente e reinicializou.Versões antigas testadas do FFMPEG: v4.8 (2014) e v4.7 (2013).Prompt elevado testado do UAC.

questionAnswers(1)

yourAnswerToTheQuestion