windows - 在不使用 StereoMix 的情况下使用 Windows ffmpeg 录制音频输出

标签 windows macos audio ffmpeg output

我正在寻找一种使用 Windows ffmpeg 录制音频输出(扬声器)的方法。 我需要在不安装任何额外的 dshow 过滤器并且不启用 StereoMix 输入的情况下执行此操作(因为这在许多计算机上不可用)。

我在 ffmpeg 文档中读到,-map 将允许重定向音频输出,以便 ffmpeg 将其视为音频输入,但我找不到如何执行此操作的任何示例。

在 Linux 中我设法这样做了:

ffmpeg -f pulse -ac 2 -ar 44100 -i alsa_output.pci-0000_00_1f.4.analog-stereo.monitor -f pulse -ac 2 -ar 44100 -i alsa_input.pci-0000_00_1f.4.analog-stereo -filter_complex amix=inputs=2 test.mp4

但是我找不到在 Windows 和 MacOSX 中执行此操作的类似方法。

简而言之,Windows ffmpeg 是否可以在没有额外的 dshow 过滤器(开箱即用)的情况下从扬声器录制音频?同样的问题也适用于 MacOSX。

谢谢!

最佳答案

C:\DIR>choco install ffmpeg

C:\DIR>ffmpeg -list_devices true -f dshow -i dummy
[...]
[dshow @ 00000000005d1140] DirectShow audio devices
[dshow @ 00000000005d1140]  "Microphone Array (Realtek High "
[dshow @ 00000000005d1140]     Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\Microphone Array (Realtek High "
[...]

C:\DIR>ffmpeg -f dshow -i audio="Microphone Array (Realtek High " NAME.wav
[...]
[press 'q' to quit]
[...]

要播放该文件,我想我需要对 Windows SDL 输出设备配置中的错误应用变通方法,

https://trac.ffmpeg.org/ticket/6891

C:\DIR>@rem https://trac.ffmpeg.org/ticket/6891
C:\DIR>@rem set SDL_AUDIODRIVER=directsound or winmm
C:\DIR>set SDL_AUDIODRIVER=winmm
C:\DIR>ffplay -i NAME.wav

看ffplay的实时频谱图很有趣。

C:\DIR>ffplay -f dshow -i audio="Microphone Array (Realtek High "
[...]
[press 'm' to mute the echo]
[...]
[press 'q' to quit]
[...]

我看到了使用来自 Python 或其媒体播放器的 Windows API 播放音频文件的其他方法。

C:\DIR>type winsound-play.py
import sys, winsound

winsound.PlaySound(sys.argv[1], winsound.SND_FILENAME)

C:\DIR>c:\Python27\python winsound-play.py NAME.wav

C:\DIR>explorer NAME.wav

C:\DIR>"%ProgramFiles%\Windows Media Player\wmplayer.exe" /task NowPlaying %CD%\NAME.wav

关于windows - 在不使用 StereoMix 的情况下使用 Windows ffmpeg 录制音频输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31282600/

相关文章:

performance - OSX 中的 OpenCV 轨迹栏性能

swift - macOS Mojave 无法使用 Swift 4 找到/var/db/DetachedSignatures

r - 在生态记录中查找和计数音频丢失

audio - C++ 读取 wav 文件,subchunk1size = 65536?

windows - 指向另一个 Windows 2012 服务器的子域 + 使用通配符 SSL 证书

c++ - msys/MinGW,即使安装了也找不到libpng,尝试编译xpdf(特别是pdftopng)

macos - 在 Mac OS X Yosemite 上从启动守护进程挂载磁盘

Windows内存管理: check if a page is in memory

windows - 有没有一种简单的方法可以检查系统上是否启用了 CredSSP?

ios - 使用MPMoviePlayerController流音频