我正在尝试使用 录制我的 Skype 通话ffmpeg
。我需要录制音频(脉冲音频)& 视频(X)。不过好像有点棘手...
10
对于音频录制,我想使用在 pulseaudio 中列为设备编号的 Scarlet 2i4 音频接口:
ziga@ziga-laptop:~$ pactl list short cards
2 alsa_card.pci-0000_00_1b.0 module-alsa-card.c
10 alsa_card.usb-Focusrite_Scarlett_2i4_USB-00 module-alsa-card.c
~$ pactl list short sinks
16 alsa_output.usb-Focusrite_Scarlett_2i4_USB-00.analog-surround-40 module-alsa-card.c s32le 4ch 44100Hz SUSPENDED
~$ pactl list short sources
24 alsa_output.usb-Focusrite_Scarlett_2i4_USB-00.analog-surround-40.monitor module-alsa-card.c s32le 4ch 44100HzSUSPENDED
25 alsa_input.usb-Focusrite_Scarlett_2i4_USB-00.analog-stereo module-alsa-card.c s32le 2ch 44100Hz IDLE
从中我可以看到我想要的卡是一个设备10
,因此我构建了我的 ffmpeg 命令如下:
ffmpeg \
-f x11grab -s 1920x1080 -probesize 17M -r 30 -i :0.0+0+0 \
-f pulse -ac 2 -device 10 \
-output.mkv
在哪里:
- 第二行指定全部视频输入参数 (已测试并正常运行)
- 第三行指定全部音频参数 (不工作)
但是当我执行命令时出现错误:
Output #0, pulse, to 'output.mkv':
Output file #0 does not contain any stream
有人知道为什么吗?我如何录制 Skype 声音?
添加
@Gyan 的建议虽然没有起作用,但它为我指明了正确的方向。
我使用了参数-device
而不是-i
。后者是输入参数,如果我们指定一个设备编号 10
它不起作用。我们必须指定可以使用的输入pactl list short sources
。因此我们可以使用源编号 25
例如:
ffmpeg -f x11grab -s 1920x1080 -probesize 17M -r 30 -i :0.0+0+0 -f pulse -ac 2 -i 25 output.mkv
它运行了,但只记录了一个源,即我的麦克风。它完全忽略了 Skype、音频播放器等...
如果我pavucontrol
在运行 Skype 和音频播放器时打开,pavucontroll
则会显示以下应用程序流:
我如何包括“Skype”和“死牛肉”流入录音?
答案1
您的脉冲输入仍然需要一个-i
带有 ffmpeg 参数的选项来将其标记为输入。快速浏览代码建议将第 3 行更改为下面应该有效
-f pulse -ac 2 -i 10