You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FFmpeg同时录制两个窗口并输出到单个文件

实现方案

场景1:输出文件包含两路独立视频流(可在播放器切换查看)

直接新增第二个gdigrab输入源,通过-map参数指定保留两路视频流即可,将命令中title="你的第二个窗口标题"替换为你实际要捕获的窗口标题:

ffmpeg -f gdigrab -framerate 30 -i title="Chrome" -f gdigrab -framerate 30 -i title="你的第二个窗口标题" -map 0:v -b:v:0 3M -map 1:v -b:v:1 3M output.flv

参数说明:-map 0:v对应取用第一个输入(Chrome窗口)的视频流,-map 1:v对应取用第二个输入的视频流,-b:v:0和-b:v:1分别为两路流设置独立码率。

场景2:将两个窗口画面拼接为单路视频输出

如果你需要把两个窗口的画面合并为同一个画面输出,可以用ffmpeg的内置滤镜实现拼接:

  • 左右拼接命令示例:
ffmpeg -f gdigrab -framerate 30 -i title="Chrome" -f gdigrab -framerate 30 -i title="你的第二个窗口标题" -filter_complex "[0:v][1:v]hstack=inputs=2[v]" -map "[v]" -b:v 6M output.flv
  • 上下拼接只需将滤镜中的hstack替换为vstack即可。
  • 如果两个窗口分辨率不一致,可先通过scale滤镜统一尺寸再拼接,比如统一高度为720p的写法:
ffmpeg -f gdigrab -framerate 30 -i title="Chrome" -f gdigrab -framerate 30 -i title="你的第二个窗口标题" -filter_complex "[0:v]scale=-1:720[v0];[1:v]scale=-1:720[v1];[v0][v1]hstack=inputs=2[v]" -map "[v]" -b:v 6M output.flv

注意事项

  • 两个窗口的标题要完全匹配,不要出现重复标题的窗口,否则gdigrab会随机匹配其中一个
  • 两路捕获的帧率建议保持一致,避免出现画面不同步的问题
  • 如果需要同时捕获系统音频或麦克风音频,可额外添加音频输入参数并指定音频映射规则

内容的提问来源于stack exchange,提问作者user12733526

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:57:02