所以我认为标题解释了大部分内容,我试图使用 ffmpeg 在 macOS catalina 上录制我的屏幕,同时使用 blackhole 引导音频
我可以输入音频,但是声音有杂音,听起来几乎像是延迟或缓冲或诸如此类的东西。
我正在使用以下命令:
ffmpeg -f avfoundation -list_devices true -i ""
这给了我:
[AVFoundation indev @ 0x7fcf87f06480] AVFoundation video devices:
[AVFoundation indev @ 0x7fcf87f06480] [0] FaceTime HD Camera (Built-in)
[AVFoundation indev @ 0x7fcf87f06480] [1] Capture screen 0
[AVFoundation indev @ 0x7fcf87f06480] [2] Capture screen 1
[AVFoundation indev @ 0x7fcf87f06480] AVFoundation audio devices:
[AVFoundation indev @ 0x7fcf87f06480] [0] BlackHole 2ch
[AVFoundation indev @ 0x7fcf87f06480] [1] Built-in Input
[AVFoundation indev @ 0x7fcf87f06480] [2] BlackHole 16ch
然后我跑
ffmpeg -f avfoundation -pix_fmt yuyv422 -i "1:0" -ac 2 -ar 48000 -t 20 -vf crop=1280:720:1:65 -r 30 /Users/XXX/Desktop/ScreenRecordings/test2.mkv
其录制视频效果如预期般良好,但声音却如描述的一样很差。
笔记:
- 使用 quiktime 录音效果很好
- 是的,在运行 ffmpeg 命令之前,我将计算机的音频重新路由到 blackhole 2ch
- 在 midi 声音设备菜单中,我将 blackhole 2ch 的输出设置为 48,000
有人知道如何修复音频吗?
答案1
我无法从 FFMPEG 中得到任何东西,除了一堆杂乱的噼啪声。我尝试了 Soundflower、BlackHole 和 Rogue Amoeba 的 Loopback 试用版。谷歌的几个搜索结果暗示 FFMPEG v4.2 可能没有问题,但后续版本会造成问题(撰写本文时的最新版本是 v4.4),但 v4.2 对我来说没什么不同。
我最终想到的解决方案是:
- 使用
sox
代替ffmpeg
,例如通过 Homebrew 安装 - 安装 BlackHole 2 通道 -https://github.com/ExistentialAudio/BlackHole
- 我使用 AudioSwitcher (https://apps.apple.com/us/app/audioswitcher/id561712678)来轻松切换设备,但系统偏好设置也可以,如果你仔细研究,就会发现有 FOSS 解决方案
- 如果你看不到 BlackHole 作为系统音频输出设备,那么在音频 MIDI 设置中,创建一个具有易于输入名称的聚合设备,你应该能够选择它
至此,您应该已全部设置完毕。使用例如以下方式记录:
sox -t coreaudio "BlackHole 2ch" ~/foo.flac