Ang*_*ker 8 audio windows sound-card ffmpeg windows-8.1
我正在尝试在 Windows 8.1 中录制我的声卡上播放的内容
我运行以下命令来确定我拥有哪些设备:
ffmpeg -list_devices true -f dshow -i dummy
Run Code Online (Sandbox Code Playgroud)
输出列出:
DirectShow video devices (some may be both video and audio devices)
"Built-in iSight"
DirectShow audio devices
"Microphone (Cirrus Logic CS4206A (AB 71))"
"Digital Audio (S/PDIF) (Cirrus Logic CS4206A (AB 71))"
Run Code Online (Sandbox Code Playgroud)
由此我假设这Digital Audio (S/PDIF) (Cirrus Logic CS4206A (AB 71))是我唯一的输出声卡。
所以我放了一些带有声音的随机 youtube 视频并运行以下命令来录制 10 秒的 mp3。
ffmpeg -f dshow -i audio="Digital Audio (S/PDIF) (Cirrus Logic CS4206A (AB 71))" -acodec libmp3lame -t 10 out.mp3
Run Code Online (Sandbox Code Playgroud)
它确实录制了 10 秒的剪辑,但它是无声的。
当我查看播放设备时,我看到实际播放音频的设备是Speakers,而不是Digital Audio (S/PDIF)。

我尝试在 ffmpeg 命令行中替换Digital Audio (S/PDIF)为Speakers,但它显然无法识别该设备。
我在一个类似的问题中看到,人们建议使用“立体声混音”——我根本没有在我的电脑上看到它。下载最新的驱动程序并没有将其添加到设备列表中。
那么我错过了什么?如何从声卡上录制音频
首先通过打开上面屏幕截图中显示的“声音”窗口来启用立体声混音,选择“录音”选项卡,然后右键单击该窗口并选择“显示禁用的设备”以切换立体声混音设备的可见性。这篇文章有更详细的说明。
启用立体声混音后,您需要将扬声器或耳机插入音频输出。然后运行命令以获取耳机/扬声器输出的名称。
ffmpeg -list_devices true -f dshow -i dummy
Run Code Online (Sandbox Code Playgroud)
以下是我在 Windows 10 Home 上获取音频的完整命令:
ffmpeg -f dshow -i audio="Microphone (Realtek High Definition Audio)" D:\Audio\output.mp3
Run Code Online (Sandbox Code Playgroud)
这是同时音频和视频的命令:
ffmpeg -f gdigrab -framerate ntsc -video_size 1920x1080 -i desktop -f dshow -i audio="Microphone (Realtek High Definition Audio)" -vcodec libx264 -pix_fmt yuv420p -preset ultrafast D:\Movies\output.mp4
Run Code Online (Sandbox Code Playgroud)
该视频输出也可以在我的 iPad 上使用。我将笔记本电脑插入显示器,这将记录显示器的全屏以及扬声器发出的音频。
| 归档时间: |
|
| 查看次数: |
18504 次 |
| 最近记录: |