Captura 命令行录制实战:`captura-cli start` 参数、编码器与源码级原理全解析

发布时间:2026/9/23 13:33:54

Captura 命令行录制实战:`captura-cli start` 参数、编码器与源码级原理全解析 Captura 命令行录制实战captura-cli start参数、编码器与源码级原理全解析【免费下载链接】CapturaCapture Screen, Audio, Cursor, Mouse Clicks and Keystrokes项目地址: https://gitcode.com/gh_mirrors/ca/CapturaCaptura 在提供图形界面captura.exe之外还内置了一个独立的命令行程序captura-cli.exe用于完成屏幕、音频、鼠标点击与按键的录制任务。本文以官方文档 docs/Cmdline/Verb-Start.md 为骨架结合仓库源码src/Captura.Console/逐项讲解captura-cli start的全部参数、两种录制模式以及 SharpAvi / Media Foundation / FFmpeg / Stream / Steps 五种编码器用法并给出可验证的源码依据帮助你快速上手脚本化、自动化录制。注意官方文档明确指出 命令行支持尚不稳定使用过程中如遇问题欢迎反馈。命令行程序使用默认设置且不保存设置变更每次运行都会以全新状态执行。一、start命令的两种运行模式start动词负责开始录制其运行方式分为两种对应 ConsoleManager.Loop 的实现模式触发条件行为表现定时录制指定--length录制持续到指定秒数后自动停止并在终端中逐秒回显已录制时长手动停止未指定--length终端持续显示提示信息录制过程中按q退出、按p暂停/恢复从源码看定时模式通过while (elapsed StartOptions.Length) { Thread.Sleep(1000); ... }实现每秒计数手动模式则循环读取按键只有在按下p时才调用_recordingModel.OnPauseExecute()切换暂停状态按q才结束循环并调用_recordingModel.StopRecording()收尾详见 ConsoleManager.cs。值得注意的是手动模式兼容输入重定向场景当标准输入被重定向时如管道或脚本会退化为按行读取单个字符。一个最简的录制命令captura-cli start未指定任何参数时它将使用默认设置开始录制桌面默认视频源并等待你在终端按q结束。二、参数详解start命令的参数由 StartCmdOptions.cs 与继承的 CommonCmdOptions.cs 共同定义解析工作交给 CommandLineParser 库完成入口见 Program.cs。下表为完整参数清单参数说明默认值源码定义处--cursor录制中是否包含鼠标光标不包含CommonCmdOptions.cs--keys是否包含按键Keystrokes显示不包含StartCmdOptions.cs--clicks是否包含鼠标点击显示不包含StartCmdOptions.cs--delay开始录制前的延迟等待毫秒0StartCmdOptions.cs-t/--length录制时长秒0不限制StartCmdOptions.cs--source录制视频源详见 Arg-Source.mddesktop桌面CommonCmdOptions.cs--mic麦克风索引-1 不使用0 第一个设备-1StartCmdOptions.cs--speaker扬声器输出索引-1 不使用0 第一个设备-1StartCmdOptions.cs--webcam摄像头索引-1 不使用0 第一个摄像头-1StartCmdOptions.cs-r/--framerate帧率fps10StartCmdOptions.cs--encoder视频编码器详见下文第三节SharpAvi Motion JPEGStartCmdOptions.cs--vq视频质量1 10070StartCmdOptions.cs--aq音频质量1 10050StartCmdOptions.cs-f/--file输出文件路径按设置自动命名CommonCmdOptions.cs-y覆盖已存在的输出文件不覆盖会交互询问StartCmdOptions.cs--replay回放录制Replay参数为回放时长秒如--replay 20关闭StartCmdOptions.cs源码未在文档表格中列出的额外参数除上述文档列出的参数外StartCmdOptions.cs 还定义了--settings参数用于指定设置文件路径以覆盖叠加层Overlay设置、FFmpeg 路径与输出目录。其执行时会将ServiceProvider.SettingsDir指向该路径见 StartCmdOptions.Run。参数的行为细节源码依据文件已存在时的行为当-f指定的输出文件已存在时若未加-y程序会弹出 Yes/No 询问是否覆盖确认后才删除旧文件见 ConsoleManager.cs。音频索引越界处理--mic/--speaker只有在索引落在设备数组范围内时才会启用对应录音见 HandleAudioSource否则静默忽略。设备列表可通过captura-cli list查询输出实现在 ConsoleLister.cs。--delay的实现源码直接使用Thread.Sleep(StartOptions.Delay)阻塞等待后启动录制见 ConsoleManager.cs。--replay的实现当回放时长大于 0 时会同时把RecorderMode设置为Replay并写入回放时长见 ConsoleManager.cs随后在 RecordingModel.cs 中创建FFmpegReplayWriter完成录制最近 N 秒的环形缓冲逻辑。因此回放模式依赖 FFmpeg 可用。设置继承命令行模式并非完全空白ConsoleManager.CopySettings()会从 GUI 设置中拷贝鼠标指针叠加、点击/按键显示、耗时显示、输出目录、FFmpeg 路径、遮挡与文字/图片叠加层等配置见 ConsoleManager.cs。三、视频源--source速览--source的取值规则在 Arg-Source.md 中有完整说明此处仅做速览完整内容请阅读原文档取值含义适用命令desktop整个桌面默认start / shotLeft,Top,Width,Height指定区域宽高必须为偶数否则自动减 1 校正start / shotscreen:index按索引选屏幕0 起start / shotnone无视频仅音频录制仅 startwin:hWnd按窗口句柄录制必须来自list输出start / shotwebcam仅录制摄像头画面配合--webcam选设备仅 start示例录制指定区域100,100,300,400的命令在 StartCmdOptions.Examples 中有对应用法示例区域解析在 RegionSourceProvider.ParseCli 中完成并对坐标调用Even()做偶数化处理。none与webcam的匹配逻辑分别位于 NoVideoSourceProvider.cs 与 WebcamSourceProvider.cs。四、编码器--encoder详解未指定--encoder时默认使用SharpAvi Motion JPEG编码器对应 HandleVideoEncoder 的兜底分支。--encoder支持以下五类取值1. SharpAvisharpavi:indexindex是零基索引标识具体的 SharpAvi 编码器。可用captura-cli list查看编码器索引列表输出逻辑见 ConsoleLister.SharpAvi。captura-cli start --encoder sharpavi:0SharpAvi 模式不依赖 FFmpeg是最轻量的录制方案。测试 ConsoleStartTests.cs 验证了start --encoder sharpavi:0可正常启动并通过按键q正常退出。2. Media Foundationmf使用 Windows Media Foundation 编码基于Captura.Windows/MediaFoundation模块参数直接写mfcaptura-cli start --encoder mf3. FFmpegffmpeg:indexindex是零基索引对应 FFmpeg 编码器列表。该模式要求 FFmpeg 已安装否则解析会失败FFmpegWriterProvider.ParseCli 首先检查FFmpegService.FFmpegExists。可用captura-cli list查看编码器索引。captura-cli start --encoder ffmpeg:0从 FFmpegWriterProvider.GetEnumerator 看内置编码器顺序为X264 → Xvid → QSV HEVC → NVENC H.264 → NVENC HEVC随后是用户自定义编码器FFmpegSettings.CustomCodecs索引即按此顺序编号。FFmpeg 未就绪时可通过captura-cli ffmpeg命令在线安装见 Verb-FFmpeg.md。4. Stream直播推流stream:urlurl为流媒体服务的 RTMP 地址将录制内容实时推流captura-cli start --encoder stream:rtmp://live.twitch.tv/app/TWITCH_KEY该模式同样依赖 FFmpeg其编码器集合Twitch、YouTube Live、自定义流媒体定义在 StreamingWriterProvider.GetEnumerator。注意官方将其标记为 Alpha 阶段功能API Key 可在 FFmpeg 设置页中配置见 StreamingWriterProvider.Description。5. Steps步骤录制模式steps:video与steps:imagesSteps 模式用于录制操作步骤即鼠标/键盘操作序列与普通视频录制不同# 将步骤录制为 AVI 视频 captura-cli start --encoder steps:video # 将步骤录制为包含 PNG 图片的文件夹 captura-cli start --encoder steps:images其实现位于 HandleVideoEncodersteps:video会创建StepsVideoWriterItem基于 SharpAvisteps:images则创建ImageFolderWriterItem两者都会将RecorderMode切换为Steps随后在 RecordingModel.SetupStepsRecorder 中组装StepsRecorder记录按键KeyStep、鼠标点击MouseClickStep与滚动ScrollStep等步骤事件。五、实战示例示例 1录制 10 秒包含光标、按键与第一个扬声器的声音这是文档给出的官方示例也是 StartCmdOptions.Examples 中注册的标准用法captura-cli start --length 10 --cursor --keys --speaker0示例 2指定区域录制为 AVI 文件并覆盖旧文件captura-cli start --source 100,100,300,400 --encoder sharpavi:0 -f out.avi -y示例 3仅录制系统声音无视频源captura-cli start --source none --speaker 0示例 4麦克风 扬声器同时录制自定义质量captura-cli start --source desktop --mic 0 --speaker 0 --vq 80 --aq 60 --framerate 30 -f demo.mp4提示多显示器环境下可用screen:index选择屏幕录制特定窗口时先用captura-cli list获取窗口的hWnd再以--source win:hWnd传入。六、注意事项与边界条件命令行列出的设备/编码器索引以captura-cli list实际输出为准Verb-List.md索引从 0 开始越界的音频/摄像头索引会被静默忽略。--replay、ffmpeg:index、stream:url、steps:*均与 FFmpeg 或特定模块强相关请先通过captura-cli list确认 FFmpeg 是否可用输出首行即为FFmpeg Available: YES/NO见 ConsoleLister.cs。命令行程序是独立于 WPF 主程序的单独工程Captura.Console.csproj文档 docs/Cmdline/README.md 解释了单独设计的原因WPF 应用无法阻塞控制台、无法默认写入控制台等问题因此录制等待逻辑放在命令行程序内部完成。手动停止模式下暂停/退出按键为p/q若通过管道重定向输入则按行读取单字符输入见 ConsoleManager.Loop。若未指定-f输出文件将根据设置中的文件名格式自动生成RecordingModel.StartRecording 调用Settings.GetFileName如需精确控制输出路径请显式使用-f。七、结语captura-cli start提供了从定时录屏到直播推流的完整命令行能力两个参数即可完成带光标、按键与音频的定时录制通过--encoder可在 SharpAvi、Media Foundation、FFmpeg 与直播流之间自由切换steps:*更是将步骤录制按键/点击/滚动带入脚本化场景。结合captura-cli list查询设备索引、captura-cli ffmpeg管理 FFmpeg 安装即可将 Captura 的录制能力无缝接入批处理脚本与自动化流水线。若需了解其他命令动词list、shot、ffmpeg或--source的完整规则可继续阅读 docs/Cmdline/README.md、Verb-List.md、Verb-Shot.md 与 Arg-Source.md。【免费下载链接】CapturaCapture Screen, Audio, Cursor, Mouse Clicks and Keystrokes项目地址: https://gitcode.com/gh_mirrors/ca/Captura创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/23 13:28:54

LoRa节点硬件设计实战:STM32L151与SX1276原理图解析

简介:这份PDF文档面向物联网、智能家居与智能城市领域的硬件开发者及电子爱好者,聚焦LoRa无线通信模块的电路原理图解析,帮助读者从硬件层面理解模块的工作机制与设计思路。压缩包内仅含1个PDF文件,大小约98KB,内容以原…

2026/9/23 13:28:54

多机系统短路故障时域仿真全流程:从建模到临界切除时间判稳

简介:面向电力系统暂态稳定研究的一份MATLAB仿真资源,聚焦三机系统线路AB段首端两相短路接地故障后的时域动态过程。资源针对多机系统故障分析需求,给出了从故障设定到0.1秒后切除故障线路的完整仿真流程,适合电力系统方向学生、研…

2026/9/23 13:28:54

981认证入门到精通:版本升级后API全变了?选型避坑指南

981认证入门到精通:版本升级后API全变了?选型避坑指南 版本升级后 API 全变了,导致线上服务直接崩盘,这种惨痛教训在开发圈子里并不少见。很多团队在选型时只看热度,忽略了版本兼容性的“坑”,结果从入门到精通的路途中,大半时间都耗在了适…

2026/9/23 14:29:06

分时电价与需求响应建模的MATLAB实现

1. 分时电价与需求响应分析概述分时电价(Time-of-Use Pricing, TOU)作为电力市场的重要调节机制,通过价格杠杆引导用户优化用电行为。我在电力系统分析项目中多次应用该方法,发现其实施效果高度依赖科学的分析模型和精准的参数设计…

2026/9/23 14:24:06

Java Web小说网站项目实战:Servlet+JSP+MySQL从源码到部署全解析

简介:这是一份基于Java Web技术栈开发的网络在线小说网站完整项目源码,面向Java Web课程设计、毕业设计以及入门进阶学习者,重点解决从零搭建在线小说阅读平台时的业务与代码实现问题。项目完整覆盖小说搜索、分类浏览、章节阅读和文件下载等…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码