Захват VLC DirectShow для использования аудиоустройства по умолчанию

11894
Brad

Мне нужно захватывать звук с VLC с устройства захвата по умолчанию, установленного для системы в Windows. Если я установлю аудиоустройство в диалоговом окне захвата на «По умолчанию», оно будет записываться с первого аудиоустройства в списке, а не с того, которое настроено в системе по умолчанию.

VLC Capture Dialog

Удаление :dshow-adev=из командной строки тоже не помогает.

Как я могу получить VLC для захвата с системного устройства по умолчанию?

0

1 ответ на вопрос

1
heavyd

Платформа DirectShow не использует параметры, указанные в Windows для устройств по умолчанию, поэтому изменение параметров звука в настройках звука Windows не повлияет на DirectShow.

На самом деле VLC просто перечисляет устройства в системе и выбирает первое найденное аудиоустройство. Вы можете просто выбрать конкретное устройство, которое вы хотите использовать, из раскрывающегося списка, или же вы можете отключить аудиоустройства, которые вы не хотите использовать, до тех пор, пока нужное вам устройство не окажется первым в списке.

Спасибо за ответ, это приятно знать. Моя основная проблема заключается в том, что я буду запускать VLC из другой программы, и, похоже, нет способа получить список устройств из VLC. Я думал, что при использовании устройства по умолчанию это было бы приемлемо, но если DirectShow использует свои собственные настройки, то это не будет работать. Вы знаете, как получить список устройств из VLC, через STDOUT или что-то еще? Brad 11 лет назад 0
Я не знаю ни одного способа перечислить устройство из командной строки VLC. Тем не менее, FFMPEG, кажется, имеет эту функцию: http://trac.ffmpeg.org/wiki/DirectShow. Вы также можете посмотреть [этот вопрос Stackoverflow] (http://stackoverflow.com/q/18295499/94928), если вы Ищете сделать это программно. heavyd 11 лет назад 0
Спасибо, этот вопрос, с которым вы связаны, тоже мой вопрос. :-D Да, похоже, мне придется делать это программно за пределами VLC. Brad 11 лет назад 0
хех .. конечно, это так. Если вы идете программным путем, вы можете взглянуть на [DirectShow.NET] (http://directshownet.sourceforge.net/), в частности, на класс `DsDevice`. Это должно сделать это довольно легко для вас. heavyd 11 лет назад 0
Хорошая находка! Благодарю. Это определенно поможет. Brad 11 лет назад 0