FFmpeg无法结合gdigrab与音频设备实现音视频同步录制问题
问题原因与解决方案
错误原因
你之前的合并命令格式完全错误——未遵循ffmpeg多输入源的语法规则,把音频捕获参数直接混在视频捕获参数里,导致ffmpeg无法识别音频输入配置,反而将desktop当作本地文件去读取,因此报出“desktop: No such file or directory”错误。
正确实现方式
方案1:同时使用gdigrab(视频)+ dshow(音频)
直接指定两个独立输入源,每个输入对应各自的格式与参数:
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 2560x1440 -show_region 1 -i desktop -f dshow -i audio="virtual-audio-capturer" -c:v libx264 -c:a aac output.mkv -y
-f gdigrab -i desktop:指定视频输入为gdigrab捕获的桌面画面-f dshow -i audio="virtual-audio-capturer":指定音频输入为dshow的虚拟音频捕获设备-c:v libx264、-c:a aac:分别指定视频与音频编码格式,保障输出文件的兼容性
方案2:用dshow同时捕获音视频(可选)
若你的系统安装了支持屏幕捕获的dshow设备(如screen-capture-recorder),可通过单条命令完成音视频同步录制:
- 先查询可用dshow设备,确认屏幕捕获设备名称:
ffmpeg -list_devices true -f dshow -i dummy
- 找到屏幕捕获设备后,执行以下命令:
ffmpeg -f dshow -i video="screen-capture-recorder":audio="virtual-audio-capturer" -framerate 30 -video_size 2560x1440 -c:v libx264 -c:a aac output.mkv -y
内容的提问来源于stack exchange,提问作者Ralf_Reddings
相关产品推荐
相关产品推荐

