Можно ли перехватить все аудиоданные, отправленные на динамик, и записать их в файл? Я пытаюсь извлечь аудиоконтент из видео, но у меня нет микрофона.
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
с командной строкой в фокусе.