☰
跨平台录屏工具怎么选?从Kazam到FFmpeg的实战指南
2026/10/17 7:05:06 网站建设 项目流程

最近整理硬盘时翻出不少旧录屏文件,想起这些年从 Linux 到 Windows 再到 macOS,居然把几套主流的录屏工具都摸了一遍。Kazam、OBS、FFmpeg、oCam、Filmage Screen 这几个名字放在一起,基本就是一条完整的“桌面录屏工具链”了。如果你是刚接触录屏,又或者在不同系统之间来回切换,这篇文章正好可以帮你理清楚每个工具适合干什么,以及我在实际使用中踩过哪些坑。

先说清楚这篇文章适合谁看:需要录制屏幕分享、软件操作演示、课程视频、游戏录像,或者想要用命令行把录屏塞进自动化脚本里的朋友。无论你用 Linux、Windows 还是 Mac,都能在这里找到一套能立即上手的方案。

1. 跨系统录屏工具的选型思路与适用场景

1.1 屏幕录制的基础需求拆解

屏幕录制这件事,表面看就是“按下录制键,输出一段视频”,但实际拆解下来,需求其实是几层叠加的:

第一层是采集源。你想录整个屏幕、某个窗口,还是指定一块区域?不同工具在这件事上的操作手感差别很大。Kazam 和 oCam 这类轻量工具,通常直接拖拽选区就能完成;OBS 则需要你先建立一个“源”,再把采集范围映射进去。窗口录制还涉及与被录窗口的层级关系,有些工具一旦窗口被遮挡,录到的内容就会跳变。

第二层是音源。系统声音、麦克风、还是没有声音?Linux 下靠 PulseAudio 或 PipeWire 管理音频设备,Windows 下难度主要集中在“立体声混音”这类虚拟设备是否开启,macOS 的内录音频则需要依赖额外的驱动或者系统级设置。很多录屏失败的案例,九成以上栽在“画面有、声音没有”。

第三层是编码与封装。H.264 是当下兼容性最好的选择,但你还需要考虑码率、帧率、关键帧间隔、是否用硬件编码加速。不同工具在这层参数上的暴露程度完全不同,FFmpeg 可以把每个参数都摊开给你看,Kazam 则基本替你做了决定。前者适合愿意折腾的人,后者适合“只要结果”的人。

第四层是输出目的。是录完直接传到视频平台,还是需要后期剪辑?是否需要长时间无人值守录制?是否对文件体积有硬限制?这决定了你用图形界面工具还是命令行工具。

把这四层想清楚后再去选工具,就不会出现“装了 OBS 但只是录个两分钟的小片段”这种杀鸡用牛刀的情况。

1.2 为什么跨平台工具不能直接平移

很多人有个误解,认为“录屏工具”这种基础软件,应该在所有操作系统上长得差不多。实际上,三个平台在底层机制上差异非常大。

Linux 桌面环境的视频采集,通常依赖 X11 的 XDamage 扩展或者 Wayland 的 screencopy 协议。Kazam 这类老牌工具主要跑在 X11 上,一旦切到 Wayland,就可能出现黑屏或者只能录到鼠标光标。FFmpeg 在 Linux 上默认走的也是 X11 抓帧器(x11grab),如果你的桌面环境用的是 Wayland,就得换用 wl-screenrec 这类专门工具。

Windows 的录屏更多走 GDI 或 DXGI 桌面复制。FFmpeg 在 Windows 上用的是 dshow 或 gdigrab,oCam 则直接调用了微软的硬件接口,所以它对不同分辨率和刷新率的适配更好。

macOS 这边,因为系统权限管理的特殊性,任何录屏工具第一次运行都会触发“屏幕录制”权限授权。如果没有在“系统设置”中把对应应用勾选上,工具即使运行正常,录出来也只会是一片黑。FFmpeg 在 macOS 上通过 AVFoundation 框架采集,同样绕不开这个权限。

所以你会发现,在 Linux 上录得飞起的参数配置,拿到 Windows 上可能连设备名都识别不了。这不是工具不好用,而是平台底层限制导致必然需要差异化配置。

1.3 我的工具选择逻辑

我在实际工作中,形成了一套简单的选择逻辑:

  • 临时录个 30 秒的操作片段,给同事看一下问题复现,直接打开 Kazam 或者 oCam,选好区域,点录制,完事导出。
  • 需要录制教学视频,且后续要加字幕、做后期剪辑,我会用 OBS,因为可以提前把摄像头、窗口、背景音乐都排布好,录制和直播使用同一套场景。
  • 需要定时录制、批量录制,或者录制任务要集成到脚本中,FFmpeg 就是唯一靠谱的选择。
  • 在 Mac 上录屏,Filmage Screen 是我目前最常用的图形化方案,因为它在内录音频和支持竖屏短视频这两件事上做得比较顺手。

这不是一个“哪个好哪个坏”的问题,而是“此刻需求最匹配哪套工具”的问题。下面我分别展开聊一聊每个工具的实际使用体验。

2. Linux 下的三个主力选择:Kazam、OBS 与 FFmpeg

2.1 Kazam:轻量图形界面,适合快速操作

Kazam 在 Linux 用户中的口碑,可以用“老伙计”三个字来形容。它的界面极其朴素:一个主窗口,几个按钮,选择截屏还是录屏,然后框选区域,开始录制。

我从 Ubuntu 16.04 时代就开始用 Kazam,一直到现在,它在 X11 环境下的稳定性都很让人放心。录制操作非常简单,启动后点击“录屏”按钮,屏幕会弹出一个区域选择框,你既可以拖拽选择任意矩形区域,也可以点击窗口直接选中某个应用窗口。选定后右下角有“录音”相关的选项,可以分别勾选“从扬声器录制”和“从麦克风录制”,对应的是系统声音和外部声音。

有一个细节值得注意:Kazam 对 Wayland 桌面的支持一直不算好。如果你用的是 Ubuntu 22.04 之后的默认 Wayland 会话,直接启动 Kazam 很可能出现黑屏。解决办法是在登录界面选择“Ubuntu on Xorg”,或者改用其他工具。这个问题不是 Kazam 本身的质量问题,而是 Wayland 的屏幕捕获协议和传统 X11 工具没有完全兼容。

Kazam 导出的默认格式是 MP4(也可以选 WebM),编码方面内置了几档质量预设。我给普通操作演示用的都是“适中”档,录制纯文档对比场景,文件体积和清晰度平衡得很好。它不支持多音轨,也不支持同时接入摄像头画面,所以如果你今天要录一个带讲师头像的网课,Kazam 不够用。

2.2 OBS:直播级复杂度,适合重复录制与多源管理

如果你在前面提到的“需求拆解”里,给自己加上了“需要摄像头、窗口、屏幕、图片文字多个画面自由切换”这一条,那 OBS 就是绕不开的选项。

OBS(Open Broadcaster Software)在 Linux 上以 obs-studio 包名提供,社区维护得相当活跃。它的核心概念是“场景”和“源”:一个场景可以包含多个源,源可以是显示器采集、窗口采集、文本、图片、媒体文件、视频捕获设备等。你可以在录制过程中随时切换不同场景,还可以设置快捷键。

我最常在 OBS 里做的事情,是录网课。我会创建两个场景:一个叫“全屏讲解”,源是显示器采集;一个叫“窗口特写”,源是某个代码编辑器的窗口采集。通过键盘快捷键,我可以在两个场景之间无缝切换,整个过程不需要中断录制。

编码设置方面,OBS 在“设置 - 输出 - 输出模式”里可以切换成“高级”,这时你能手动选择编码器、码率、关键帧间隔。Linux 上如果 CPU 性能够强,选 x264;如果想省电,可以尝试 NVIDIA NVENC 或者 AMD 的硬件编码,前提是显卡驱动支持对应授权。

我踩过的一个坑是:默认输出格式是 MKV,如果你直接录完就想拿 MP4 去交差,还需要在“设置 - 输出 - 录像 - 格式”里手动改。不要图省事直接选 MP4,因为如果录制中途断电或者 OBS 崩溃,MKV 可以安全恢复,MP4 则大概率整段文件损坏。我的习惯是录成 MKV,后续要 MP4 时用 FFmpeg 一行命令转封装,无损又快速。

2.3 FFmpeg:命令行录屏,适合脚本化和远程环境

FFmpeg 严格来说不只是一个录屏工具,它是一个多媒体处理框架。正因为如此,用它录屏的成片质量和可控性反而是最高的。

我最常用的 Linux 录屏命令是这样:

ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0 -f pulse -i default -c:v libx264 -preset veryfast -crf 18 -c:a aac -b:a 192k -shortest output.mkv

拆开解释一下:-f x11grab告诉 FFmpeg 使用 X11 抓屏模块,-video_size指定采集分辨率,-i :0.0表示 X 显示服务器编号,通常是第一个显示器的第一个屏幕。音频部分用-f pulse -i default抓取 PulseAudio 默认输入源,也就是你正在听到的系统声音。编码上libx264把它交给 H.264 编码器,-preset veryfast在压缩效率与编码速度之间取平衡,-crf 18控制画质,数字越小画质越好,一般 18 到 23 之间都是合理范围。

如果你在远程服务器上维护一个长时间录制的任务,需要定时开始、定时结束,可以用 shell 脚本加 crontab 实现。比如早上九点自动录制一场线上评审会,十一点自动停止并转码,这套逻辑用图形界面工具很难做到,但 FFmpeg 只需要几行脚本就可以稳定跑上一整周。

FFmpeg 的缺点也很明显:上手曲线陡峭,参数记不住,鼠标和键盘还需要配合外部事件触发。你没有“区域选择”这种交互式操作,所有坐标都要手动计算。比如截取屏幕左上角从(100,100)到(1280,720)的矩形区域,需要加上-video_size 1180x620和-offset_x 100 -offset_y 100。这比 Kazam 拖个框要麻烦不少,但换来的是极强的自动化能力。

2.4 Linux 录屏参数对比表

对比项KazamOBSFFmpeg
安装成本极低,单包安装中等,依赖较多低,但需了解命令行
适用桌面环境X11 较好,Wayland 支持弱X11/Wayland 均可用X11 为主,Wayland 需额外工具
图形界面简洁直观功能丰富但复杂无,纯命令行
区域选择拖拽即可需创建源并调整尺寸手动指定坐标
音频支持系统声与麦克风多音轨、音频滤镜完善通过 ALSA/Pulse 等参数控制
自动化录制不方便可通过插件实现非常适合
输出格式MP4 / WebMMKV / MP4 / FLV 等几乎全格式

3. Windows 下的 oCam:轻量、带硬件加速的录屏方案

3.1 oCam 的核心能力与操作方式

在 Windows 上,我试过不少录屏工具,最后还是把 oCam 装回了系统。原因很简单:它符合我对 Windows 工具的期待,体积小、启动快、功能直给,不需要像 OBS 那样建场景、调源。

oCam 的主界面是一排按钮加一个矩形录制区域预览框。你可以按住鼠标左键直接在桌面上框选区域,也可以点击“窗口”按钮,它会自动列出当前打开的窗口,你点哪个录哪个。它还带有截图功能,单张 PNG 捕获和连续截图都能用。

对于游戏录制,oCam 有个“录屏编解码器”选项,你可以选择使用 H.264(NVIDIA)或 H.264(Intel),分别调用显卡的硬件编码单元。这意味着录游戏时 CPU 占用率可以保持在一个很低的水平,我之前用一台普通笔记本录制一个 2D 游戏的操作演示,CPU 占用只有百分之十几,画质也够看。

oCam 的另一个亮点是支持自定义录制区域大小。你可以精确填入宽度和高度,甚至能设置“捕获鼠标指针”“录制声音”“暂停和恢复”等操作。对需要按部就班录制操作流程的场景,这种控制粒度非常实用。

3.2 编码与设置建议

第一次用 oCam 的人,最容易忽略的是“录制”菜单里的格式设置。默认情况下它可能输出 AVI 文件,文件体积巨大。我建议直接把“视频格式”改成 MP4,并选择 H.264 编码器。

音频方面,oCam 在“录制”菜单下有“录制声音”选项。默认是“声音(扬声器 + 麦克风)”,如果你想只录系统声音,不录麦克风,需要选择“声音(仅扬声器)”。这一点比 Linux 下的工具要直观,因为它已经帮你把设备抽象好了。

帧率的设置位置在“设置”还是“录制”菜单里,不同版本略有不同,但逻辑统一:常规操作录 30 帧即可,游戏录制要看刷新率和显卡能力。我一般会关掉“显示录制时间”“添加水印”这类附加功能,让成片画面保持干净。

3.3 安装注意事项

oCam 的官网下载页和安装包,是我实际操作中必须提醒一句的地方。这类免费工具在安装过程中往往带有捆绑选项,默认会勾选安装一些你根本不需要的东西。我的做法是:安装时选择自定义安装,把每个带勾的额外组件全部取消,只保留主程序。这一步虽然略显麻烦,但能避免后续被各种弹窗打扰。

另外,oCam 偶尔会因为版本更新而改变默认编码器设置,升级后最好重新检查一遍格式和编码器选项,避免升级完录出来的文件突然不能用。

4. Mac 下的 Filmage Screen:内录音频与界面操作的细节

4.1 Filmage Screen 的主要功能

转到 Mac 上之后,我一开始还执着于找和 Kazam 手感类似的开源工具。后来用过一轮之后,反而发现 Filmage Screen 这类商业软件在细节体验上做得更符合日常使用习惯。

Filmage Screen 是一个主打“轻量 + 全面”的 macOS 录屏工具。它的界面非常简洁,启动后会悬浮一个小窗口,上面有“全屏录制”“区域录制”“仅录制声音”“摄像头录制”几个选项。选好范围后,录制悬浮球会收成一个工具栏,包含暂停、继续、停止三个按钮,鼠标一移到屏幕边缘就会出现。

比较让我满意的是它对竖屏视频的支持。录制手机 App 演示时,我只需要把录制区域设定为 9:16 比例,Filmage Screen 会自动将画布尺寸对齐,输出直接适合短视频平台传参格式。这听起来不难,但很多桌面端录屏工具在竖屏输出上要么需要手动记住分辨率,要么根本不做这个选项。

Filmage Screen 也支持同时录制摄像头画面,画中画的位置和大小可以调整。我录线上分享时会额外接一个麦克风音轨,它会在编辑器里分成两条声音轨道,方便后期处理。

4.2 内录音频设置

在 macOS 上录屏,最让人头疼的其实是“内录音频”。由于系统限制,你没办法直接让系统输出和麦克风输入同时被一个普通应用捕获,除非使用虚拟音频设备。

Filmage Screen 比较聪明的地方,是把“录制系统声音”做成了一个默认选项。当你打开软件的“偏好设置”,会发现一个“音频设备”面板,可以设置系统音频的设备来源。通常第一次使用时会跳出一个提示,告诉你需要安装一个虚拟声音扩展来捕获系统输出,安装后重启一下软件就能正常录制声音。

如果你不想安装任何额外的音频驱动,也可以用 macOS 自带的方案:安装一个虚拟声卡工具,然后把系统输出切到那个虚拟设备上,录屏软件再去抓取它。但这样操作链路比较绕,日常使用我更推荐直接用 Filmage Screen 自带的一键内录功能,省去配置虚拟声卡的麻烦。

4.3 Mac 上其他可行的补充

Filmage Screen 并不是 Mac 上唯一的录屏方案。系统自带的 QuickTime Player 就有“文件 - 新建屏幕录制”功能,支持全屏和选区录制,但内置音频捕获一直被各种限制,所以严格来说它只适合录无声画面。

macOS 还内置了截图快捷键组合,按住 Shift 加 Command 加 5 可以唤出录制工具栏,可以用来录制屏幕或部分屏幕。这个方案胜在零安装、开箱即用,但同样不解决内录音频的问题,而且可自定义的选项很少。

如果你已经装了 FFmpeg,可以用 AVFoundation 架构录制屏幕,命令会在下一节给出。所以我个人觉得,Filmage Screen 的价值在于它把系统层面的权限与音频问题都提前封装好了,用户不需要理解虚拟声卡和权限设置这些底层细节。

5. FFmpeg 跨平台实录命令:可直接复制

5.1 基于 X11 的 Linux 录屏命令

Linux 上最普遍的做法,是用 FFmpeg 的 x11grab 输入设备。它在 X11 会话下直接读取屏幕内容,延迟低、资源消耗少。

基础命令:

ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0 -c:v libx264 -preset fast -crf 20 output.mp4

需要同时录制系统声音时,追加音频输入:

ffmpeg -f x11grab -framerate 30 -video_size 1920x1080 -i :0.0 -f pulse -i default -c:v libx264 -preset fast -crf 20 -c:a aac -b:a 192k output.mkv

如果显示器不是 1080p,先运行xrandr查看当前分辨率,将其替换到-video_size中即可。

5.2 基于 GDI 的 Windows 录屏命令

Windows 上 FFmpeg 最常用的采集方式是gdigrab,它通过 GDI 抓取整个桌面或者指定窗口。

录制整个桌面:

ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -preset fast -crf 20 output.mp4

录制屏幕左上角区域,比如从(0,0)到(1280,720):

ffmpeg -f gdigrab -framerate 30 -video_size 1280x720 -offset_x 0 -offset_y 0 -i desktop -c:v libx264 -preset fast -crf 20 output.mp4

如果需要在 Windows 上录制系统声音,通常要指定-f dshow -i audio="立体声混音",前提是你已经启用了“立体声混音”设备。设备名称可能因驱动而异,可以先运行ffmpeg -f dshow -list_devices true -i dummy查看当前可用的音频设备列表。

5.3 基于 AVFoundation 的 macOS 录屏命令

macOS 上 FFmpeg 使用avfoundation输入设备。先运行ffmpeg -f avfoundation -list_devices true -i dummy查看设备编号,再录制指定屏幕。

录制编号为 1 的屏幕,且不录音频:

ffmpeg -f avfoundation -framerate 30 -i "1:none" -c:v libx264 -preset fast -crf 20 output.mp4

同时录制屏幕和默认麦克风:

ffmpeg -f avfoundation -framerate 30 -i "1:0" -c:v libx264 -preset fast -crf 20 -c:a aac -b:a 128k output.mkv

AVFoundation 的设备编号在不同机器上可能不同,建议每次都先运行设备列表命令确认,再执行正式录制。

5.4 参数含义与调优

上面命令中反复出现的几个参数,值得你根据自己的机器情况做调整:

  • -framerate 30:要录 60 帧游戏画面就改成 60,但普通录屏 30 帧足够。
  • -crf 20:0 到 51 之间的数值,越小画质越好,文件越大。日常录屏 18 到 23 比较均衡。
  • -preset fast:编码速度偏好,ultrafast占用 CPU 少但文件大,medium或slow文件更小但会更吃性能。
  • -c:v libx264:软件编码。如果你的显卡支持 NVENC,并且 FFmpeg 编译了对应模块,可以改成-c:v h264_nvenc来降低 CPU 占用。

另外提醒一个常见误区:-shortest参数用于在音频或视频结束后立即结束输出文件。录屏幕同时录音时,如果其中一路信号提前静默,可能导致文件提早结束。多数录制场景下我反而刻意不加-shortest,让它自然录完整段。

6. 录屏过程中的常见问题与排查思路

6.1 声音没录上的原因

声音问题占了录屏故障的大半,而且每个平台的原因都不一样。

Linux 下最常见的情况是录音源选择错误。我用 Kazam 录制时,如果系统默认音频源是监视器(Monitor of Built-in Audio),而不是主声卡,那么系统声音就能被捕获,反之则只会有键盘声没有屏幕声。用 FFmpeg 录屏时,-f pulse -i default指向的往往是默认输出设备,如果某些应用强制把声音输出到另一个设备,比如 USB 声卡或蓝牙耳机,系统声就可能漏录。解决办法是在音频管理器中把输出设备切回默认声卡,或者显式指定设备名,例如-i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor。

Windows 上则要优先检查“立体声混音”设备是否启用。右键点击右下角声音图标,打开“声音设置 - 更多声音设置 - 录制”标签页,把“立体声混音”启用并设为默认设备。如果这里没有,很多录屏工具就录不到网页视频的声音。

Mac 上的解决路径我在前面已经说了,核心是先让虚拟声卡正确安装并激活,然后再设置录屏软件捕获该系统输出。

6.2 视频文件过大怎么办

录屏输出文件体积超出预期,通常是两个原因:分辨率太高、码率失控。

分辨率方面,如果你录 4K 桌面,文件一定会很大。对绝大多数操作演示,1080p 已经是顶格配置,清晰度完全够用。码率控制方面,首选设置 CRF 值而不是固定码率。CRF 20 左右的 H.264 视频,在 1080p 下每分钟大约占用 30 到 60MB,这个量级对本地存储压力较小。

如果文件已经录出来了,且确实太大了,可以用 FFmpeg 重新转码压缩:

ffmpeg -i input.mkv -c:v libx264 -preset slow -crf 26 -c:a copy output.mp4

这个命令会把画质适当降低,但能换回很大的存储空间。

6.3 录屏卡顿、丢帧如何缓解

图形界面录屏工具往往会在录制时预览画面,预览本身要消耗性能。如果机器配置一般,我建议优先用 FFmpeg 录制,它不存在额外预览窗口,资源占用更纯粹。

硬件编码是另一个有效手段。OBS 和 oCam 都能调用 NVENC 或 Intel 集显的硬件编码能力,FFmpeg 也能通过-c:v h264_nvenc切换。同样的编码复杂度,硬件编码可以把 CPU 占用率降下来很多。如果你是录视频教程,软件编码器通常画质稍好;如果你录的是高帧率游戏,硬件编码的实时性优势更明显。

还有一个容易被忽略的点:磁盘写入速度。如果目标存储盘是普通机械硬盘,并且在录制的同时还在下载大文件,那么写入竞争会直接导致丢帧。录屏时把输出文件放在固态硬盘上是最基础的保障。

6.4 其他细节问题速查

表现可能原因解决办法
黑屏但能录到鼠标权限未授权macOS 下检查“屏幕录制”权限;Linux 下检查 Wayland 兼容性
录到视频没有窗口控件显示窗口被遮挡使用“窗口采集”而不是“屏幕采集”
不同工具录出颜色偏色色彩空间或 HDR 设置不一致统一输出标准 SDR,关闭 HDR
MP4 文件在录制中断后损坏封装格式不支持中断恢复先录 MKV,后用 FFmpeg 转封装
录屏软件找不到摄像头设备被其他软件占用关闭其他占用摄像头的应用,或重启录屏软件

7. 我的录屏习惯与最终建议

写到这里,工具相关的技术细节基本已经覆盖齐全。最后想分享几个我在长期录屏过程中沉淀下来的习惯,希望能让你少走一些弯路。

录屏前先固定输出目录。无论用哪个工具,我都会设置单独的录屏文件夹,并统一文件名格式,包含日期和标题。这听起来像是稀松平常的小事,但当你需要在一周后翻找某个特定时间点的录像时,统一的命名习惯能帮你节省大量的时间。

每个系统留一套备用方案。我的 Linux 机器上既有 Kazam 也有 FFmpeg,偶尔还会开 OBS。Kazam 挂掉的时候,FFmpeg 马上接管。Windows 上装了 oCam,同时也把 FFmpeg 的命令行方案写在了一个备忘文件里。Mac 上有 Filmage Screen 兜底,专攻内录和竖屏。并不是每个工具都要精通,但至少要知道哪套方案能解决当前问题。

不要迷信“免费开源”就适合你。OBS 确实强大,但如果你只需要快速录一段两分钟的操作步骤,OBS 的启动和场景配置反而显得繁琐。工具选择应当服务于具体场景,而不是反过来为了迁就工具去调整你的流程。

如果你今天刚开始接触录屏,我的建议是从 Kazam 或者 oCam 这类轻量工具开始,先录制一两个小片段,感受一下自己的电脑在默认设置下录出来的客观效果,然后再逐步引入 OBS 或 FFmpeg 来优化画质与流程。录屏这个技能,更多是靠“在使用中遇到问题、解决问题”积累出来的手感,而不是看十篇教程能学会的。多录几段,多复盘几次,你自然会找到最适合自己的那套组合。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询