Linux上的录屏经历 kazam OBS ffmpeg 及 oCam(Win) filmage screen(Mac)

从2026年开始用Linux Debian 13 作为日常主力机,在此记录比较耗时解决的问题

录屏软件问题

Kazam 软件,可以在 Xfce 上使用,操作简单,效果不错。

问题:mp4文件在苹果设备上没有声音只有图像;在Win上播放图像有问题;这是很多Linux用户都遇到的问题。


AI给出的分析和解决方案

现在什么问题都可以问AI,大部分情况下也有帮助,AI通常可以帮助分析原因,提供解决方案,当然也常常发生幻觉,或者并不是完整的解决方案,在此分享主要的解决路线,...省略...部分读者也可以按自己偏好继续用AI完成自己的解决方案。

问题原因分析

这个还是比较要紧的信息,一旦走不通可以回头看看问题可能在哪里。

1. Kazam 默认使用的编码器可能不标准

Kazam 默认使用 GStreamer 后端进行录制,其默认输出格式虽然扩展名为 .mp4,但:

  • 视频编码 可能是 VP8VP9 或非标准 H.264 profile;
  • 音频编码 可能是 OpusVorbis 等开源格式,而非 Windows/macOS 原生广泛支持的 AAC。

⚠️ Windows 的媒体播放器(如 Movies & TV、旧版 Windows Media Player)和 macOS 的 QuickTime 对非标准或开源编解码器支持有限。

2. MP4 容器中的编码流不符合通用规范

即使文件后缀是 .mp4,如果内部音视频流使用了:

  • 非 ISO/IEC 标准的 H.264 编码参数(如 high profile + B帧),
  • Opus 音频封装在 MP4 容器中(macOS 不支持 MP4 中的 Opus),

就会导致跨平台播放异常。


使用OBS的问题

AI推荐了OBS方案,虽然OBS是非常专业的软件,但在Linux上使用并不是很方便。

  • OBS 在 X11 环境更方便, Xfce 用的是Wayland环境
  • 在 Debian 13 上使用 OBS 录制浏览器内容时,遇到 录制画面右侧出现大量黑边(多出约 1/3 黑屏) ,而实际浏览器窗口比 OBS 捕获区域"左右短了 500 像素"------这通常是由于 OBS 场景分辨率与源(浏览器窗口)尺寸不匹配 ,或 窗口捕获未正确适配窗口真实尺寸 导致的。这是更加麻烦的问题。

下面提供 系统性排查 + 解决方案,适用于 Linux(特别是 Wayland/X11 环境):


🔍 问题根源分析

  1. OBS 场景画布(Base Canvas)分辨率 ≠ 浏览器窗口实际分辨率

    • OBS 默认场景可能是 1920×1080,但你的浏览器窗口只有 1400×900,导致右侧留黑。
  2. 窗口捕获源未自动缩放或居中

    • OBS 添加"窗口捕获"后,默认以 1:1 像素显示,若场景更大,就会留黑。
  3. Wayland 下窗口元信息不准

    • 在 Wayland 会话中,某些合成器(如 GNOME/Wayland)返回的窗口尺寸包含装饰边框或 DPI 缩放偏差,导致捕获区域偏大。
  4. 浏览器使用了非整数缩放(如 125%、150%)

    • 高 DPI 缩放下,逻辑分辨率与物理像素不一致,OBS 可能误判窗口大小。

✅解决方法:将场景分辨率设为浏览器窗口尺寸(推荐用于固定窗口录制)

这里只是简单记录一下要点

如果你每次都用相同大小的浏览器窗口:

...省略...

在 X11 下获取窗口尺寸:
复制代码
xwininfo

输出中查看:

text : Width: 1400 Height: 900

在 Wayland 下(较难):
  • 使用截图工具(如 Flameshot)截图后查看图像属性
  • 或在浏览器开发者工具中用 JS 获取:
    ...省略...

尝试用 oCam(Win)

原来一直用Win上oCam的录屏,但当时没有用过麦克风录音,所以也没有发现过问题,这次用了麦克风发现有交流声,虽然只是在开始一段比较明显,但还是很刺耳。

尝试用 filmage screen (MacOS)

原以为用M1 MacBook会是最后的保障,但被事实打脸,在没有风扇的MacBook上用 filmage screen 录出来的视频交流声比oCam的录屏要大多了,完全无法让人忍受。

最终解决方案

据说 ffmpeg 命令行灵活好用,但实在无法想象,故选择了转换的方案。

结果50mb视频最后的输出只有20mb,这实在是个意外的结果,就冲着这个压缩率也要保留这个方案。

最终选择这个方案的重要提示来自下面的信息:

❌ 问题:MP3 音频被封装在 MP4 容器中

  • 虽然 MP3 是通用音频格式,但 Apple 的 QuickTime / Safari / iOS 原生播放器不支持 MP3 音轨封装在 .mp4 文件中
  • Apple 要求 MP4 容器中的音频必须是 AAC(Advanced Audio Coding),这是 ISO/IEC 标准的一部分。
  • 即使文件扩展名是 .mp4,只要音轨是 MP3,macOS/iOS 会静音或直接忽略音频流

✅ 验证:你在 Windows 上用 VLC 可能能听到声音(因为 VLC 自带解码器),但在 iPhone 或 Mac 的"视频"App、Safari、QuickTime 中无声。

解决方案

转换命令为:

复制代码
ffmpeg \
  -i input_kazam_v.mp4 \
  -c:v libx264 \
  -profile:v baseline \
  -level 3.1 \
  -pix_fmt yuv420p \
  -c:a aac \
  -b:a 128k \
  -movflags +faststart \
  -y output_apple_compatible.mp4

最后:

这是验证输出文件兼容性的命令,

ffprobe -v quiet -show_streams yourVideoName.mp4

可以把输出交给AI,它会继续帮你。

相关推荐
qq_4572107118 小时前
Mac 上 Claude Code 完整安装使用指南(跳过登录注册)
macos
AI砖家18 小时前
DeepSeek TUI 保姆级安装配置全指南 -Windows||macOS双平台全覆盖
服务器·前端·人工智能·windows·macos·ai编程·策略模式
红茶要加冰18 小时前
四、流程控制之条件判断
linux·运维·服务器
虎头金猫18 小时前
Beszel 轻量服务器监控:多台服务器状态统一看,搭起来比 Prometheus 省事太多
linux·运维·服务器·分布式·kafka·开源·prometheus
凌晨一点的秃头猪18 小时前
在cursor里面设置免密码登录服务器理解
linux·运维·服务器
代码AC不AC18 小时前
【Linux】 信号 及 信号产生
linux·信号·信号产生
量子炒饭大师18 小时前
【Linux系统编程】Cyberpunk在霓虹丛林中构建堡垒 ——【基础开发工具(1)】一文带你初步了解 软件包管理器 并 快速上手 yum和apt 工具
java·linux·运维·apt·yum·软件包管理器
草莓熊Lotso19 小时前
【CMake】 工程实战:可执行文件从编译、链接到安装全流程深度拆解
linux·运维·服务器·网络·c++·cmake
正点原子19 小时前
【正点原子Linux连载】 第五章 字符设备驱动开发 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
源远流长jerry19 小时前
Linux内核之一条tcp到底占用多少内存
linux·运维·服务器·网络·网络协议·tcp/ip