1

Можно ли перехватить все аудиоданные, отправленные на динамик, и записать их в файл? Я пытаюсь извлечь аудиоконтент из видео, но у меня нет микрофона.

1 ответ1

1

Используя файл или адрес для потоковой передачи, вы можете использовать ffmpeg для извлечения аудио.

ffmpeg.exe -i input -map 0:a:0 -c copy output.mkv

Я использовал файл Matroska (MKV), потому что он может обрабатывать практически любой аудиокодек - единственное существенное исключение, о котором я знаю, это Opus, и вряд ли это будет частью видеофайла в данный момент. Если вы знаете, какой аудиокодек используется, вы можете использовать другой формат. Если вы просто хотите извлечь его как MP3, вы можете перекодировать:

ffmpeg.exe -i input -map 0:a:0 -c:a libmp3lame -q:a 4 output.mp3

input может быть либо файл, либо адрес потоковой передачи.

Теперь, чтобы ответить на ваш актуальный вопрос, снова с помощью ffmpeg. Сначала используйте следующую команду для вывода списка устройств dshow:

ffmpeg.exe -list_devices true -f dshow -i dummy

... последние несколько строк которого должны быть примерно такими:

[dshow @ 000000000214c940] DirectShow video devices
[dshow @ 000000000214c940]  "HP Truevision HD"
[dshow @ 000000000214c940] DirectShow audio devices
[dshow @ 000000000214c940]  "Internal Mic (IDT High Definition Audio CODEC)"
[dshow @ 000000000214c940]  "Stereo Mix (IDT High Definition Audio CODEC)"
dummy: Immediate exit requested

В моем случае я использовал (на Windows 8)

ffmpeg.exe -f dshow -i audio="Stereo Mix (IDT High Definition Audio CODEC)" output.wav

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .