Windows-Shell: Wie kann ich die Namen der Audiogeräte abrufen?
Ich bin nicht sicher, ob dies eine reine Programmierfrage ist, solange es mir nichts ausmacht, zusätzliche Software zu verwenden, um das Problem zu lösen, solange diese weiterhin skriptfähig oder über die Befehlszeile erreichbar ist (dies ist: keine grafische Benutzeroberfläche) Lösung). Wie auch immer, ich habe eine andere (etwas andere) Frage an @ gepost SuperUser. Übrigens werde ich hier aktualisieren, wenn ich dort die Antwort bekomme.
Mein Windows-Programm (nur ein Shell-Skript)invokes VLC-Befehlszeile damitTon aufnehme von der Audiokarte und streamen Sie es aus, wie:
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]
Solange es @ geben könnmehrere Audiogeräte Auf einem Computer (Webcam, mehrere Audiokarten, Bluetooth-Geräte usw.) muss ich das @ programmgesteuert abrufeNam von ihnen
Ich habe FFMPEG bis jetzt benutzt:
ffmpeg -list_devices true -f dshow -i dummy
... aber manchmal funktioniert es nicht, zum Beispiel:
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
Das Kommandozeilen-ToolSystemInfo
funktioniert auch nicht:
C:\>systeminfo | find "audio" /i
C:\>
Innerhalb suchenregedit
habe nichts über mein Soundkartenbeispiel gefunden SoundMAX HD Audio I
).
Gibt es keine andere zuverlässigere Möglichkeit, programmgesteuert Besorgen Sie sich die Audiogeräte name (s)?
Wenn möglich, würde ich es vorziehen, Antworten für Windows XP und Vista oder höher zu erhalten.
Zusätzlich tests durchgeführt:
Installierte die neueste Version von MicroSoft .NET FrameWork v4.5.2 und wurde neu gestartet. Getestet ältere Versionen von FFMPEG: v4.8 (2014) und v4.7 (2013). Getestete erhöhte UAC-Eingabeaufforderung.