当前位置: 首页 > news >正文

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,它会继续帮你。

http://www.jsqmd.com/news/446928/

相关文章:

  • BetterDiscordApp高级技巧:解锁Twitch/BTTV/FFZ全量表情
  • 在 SAP HANA 中创建与管理索引:从列存访问路径到 INVERTED 系列索引的实战指南
  • 终极vex.js构建与部署指南:从源码到生产环境的完整流程
  • 在 SAP HANA 中读懂 Logical Plan 与 Physical Executed Plan:把性能诊断从大地图带到显微镜
  • PixelFlow软体动力学详解:从2D布料到3D物理模拟的实现原理
  • Blender 安装后出现不支持显卡配置
  • Linux命令的使用
  • Docker 数据管理
  • AwesomeCache高级用法:缓存过期策略与异步操作最佳实践
  • 文件实时同步软件PanguFlow,2024已有千人收藏
  • Html+Css+Jquery导航页面练习
  • 如何在5分钟内将Rancher Desktop与CI/CD流水线完美集成:开发者必备指南
  • 如何用 RubyConfig 彻底简化 Rails 配置管理:初学者必备指南
  • 当模式遇上语言:聊聊《Word Pattern II》背后的算法之美
  • GoFrame学习随便记1
  • GNES高级应用:如何为不同数据类型(文本/图像/音频)构建搜索系统
  • vue+element模仿实现PC端网易云,对接第三方接口
  • springboot+mybatis-plus+vue+element+vant2实现短视频网站,模拟西瓜视频移动端
  • mogenerator:Core Data模型代码生成的终极解决方案
  • 线程池 同时多表查询返回结果集
  • 超星学习通使用笔记
  • 别等故障来了才救火:聊聊如何用 AI 把 SLA 这件事“提前做对”
  • 显示学习6(DRM)(TODO)
  • 物联网之Arduino开发环境的下载与安装、ESP32开发环境的下载与安装、常见环境配置问题的解决办法、COM端口不可用的解决方法
  • vue+element纯手工完美模拟实现小米有品网站
  • Springboot整合RabbitMQ
  • uview plus u-calendar日历设置部分日期不可选择disabled
  • 系统不出事,才是运维的最高境界:聊聊如何打造“零故障运维系统”
  • electron 开发轻量级本地数据存储桌面端应用(简洁版)
  • 【100%通过率】华为od统一考试B卷【流水线调度 / 自动化维修流水线】JavaScript 实现