ffmpeg 如何在 Windows 10 中录制桌面视频和音频

ffmpeg 如何在 Windows 10 中录制桌面视频和音频

我正在尝试使用 ffmpeg 在 Windows 10 中录制桌面视频和音频。

我使用这个命令:

ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Stereo Mix (Synaptics SmartAudio HD)" d:\output.mkv 

但是当我从终端使用 q 命令退出时出现此错误:

[q] command received. Exiting.

[out#0/matroska @ 0000018ee98392c0] video:2862kB audio:186kB subtitle:0kB other streams:0kB global headers:4kB muxing overhead: 0.357037%
frame=   82 fps=8.8 q=-1.0 Lsize=    3058kB time=00:00:18.00 bitrate=1391.3kbits/s speed=1.92x  
... 
[libx264 @ 0000018ee98a9200] ref P L0: 48.9%  7.8% 34.7%  8.6%
[libx264 @ 0000018ee98a9200] ref B L0: 73.7% 22.0%  4.3%
[libx264 @ 0000018ee98a9200] ref B L1: 94.2%  5.8%
[libx264 @ 0000018ee98a9200] kb/s:1283.08

Conversion failed!

视频很不流畅,没有音频。R

ffmpeg的版本是:

ffmpeg version 2023-07-19-git-efa6cec759-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers

并且我在 Windows 中启用了立体声混音。

知道如何修复它吗?

谢谢

答案1

我运行的是 Windows 7,但以下内容应该可以在 Windows 10 上运行。

运行 List Devices 脚本。麦克风必须插入。

ffmpeg -list_devices true -f dshow -i dummy

生成的 cmd 输出应该包含类似如下的信息。

[dshow @ 0000000000177e00] Could not enumerate video devices (or none found).
[dshow @ 0000000000177e00] "Microphone (3- USB Microphone)" (audio)
[dshow @ 0000000000177e00]   Alternative name "@device_cm_{33D9A762-90C8-11D0-BD
43-00A0C911CE86}\Microphone (3- USB Microphone)"

我的麦克风被列为“麦克风(3- USB 麦克风)”,您的麦克风当然会有所不同。将其添加到屏幕音频脚本中,如下所示:

ffmpeg -f dshow -i audio="Microphone (3- USB Microphone)" -f gdigrab -i desktop -pix_fmt yuv420p -r 30 -crf 18 -preset superfast -c:a aac -ac 1 out.mkv

输出参数可进行调整以适应。

如果您想在启动后延迟录制,请在屏幕音频脚本上方添加以下内容。调整时间(以秒为单位)以适应。

timeout /t 5

如果存在延迟或视频和音频同步问题,可以使用以下脚本进行纠正。

ffmpeg -i out.mkv -itsoffset -0.6 -i out.mkv -map 0:0 -map 1:1 -c:a: copy -c:v copy output.mkv

正值:视频前进(音频后退)。负值:视频后退(音频前进)。

编辑:

以下仅可用于录制视频:

ffmpeg -f gdigrab -i desktop -pix_fmt yuv420p -r 30 -crf 18 -preset veryfast out.mkv

仅限音频:

ffmpeg -f dshow -i audio="Microphone (2- USB Microphone)" -c:a aac -ac 1 out.aac

相关内容