【问题标题】:record screen with high quality and minimum size in ElectronJS (Windows)在 ElectronJS (Windows) 中以高质量和最小尺寸记录屏幕
【发布时间】:2022-04-04 15:00:35
【问题描述】:

正如我在标题中所说,我需要通过电子应用记录我的屏幕。

我的需求是:

  • 高质量(720p 或 1080p)
  • 最小尺寸
  • 录制音频 + 屏幕 + 麦克风
  • 录制时对 PC 硬件的影响很小
  • 录音机停止后无需等待

最小大小是指 720p 大约 400MB 和 1080p 大约 700MB 用于 3 到 4 小时的录制。我们已经可以通过 bandicam 和 obs 实现这一点,而且是可能的

我已经试过了:

  • 使用 RecordRTC.Js 的简单 MediaStreamRecorder API;生成巨大的文件大小,例如 720p 视频每小时 1GB。
  • 使用 FFmpeg 压缩输出视频; 3 小时的录制最长可能需要 1 小时
  • 使用“ondataavailable”事件保存每个块,然后运行 ​​FFmpeg 并转换和减小大小并附加所有压缩文件(也由 FFmpeg);有两个问题。 1,由于 PTS 不同,但可以通过调整 compress 命令 args 来修复。 2,主要问题是音频数据头仅在第一个块中可用,这种方法会导致视频在前几秒内只有音频
  • 使用 FFmpeg 本身录制视频;最终用户需要手动更改一些东西(立体声混音),配置太复杂,它会导致整个 PC 在录制时工作更慢(比如 fps 下降;即使我将 -threads 设置为 1),在某些情况下之后录制完成需要多次收尾
  • 通过互联网搜索找到可以从命令行使用的应用程序;我找不到太多,像 bandicam 和 obs 等著名的应用程序都有命令行参数,但没有多少参数可以玩,我无法设置很多选项,这会导致其他问题

我不知道我还能做什么,请告诉我你是否知道可以通过 CLI 使用的方法或简单工具来实现这一目标并指导我完成这一目标

【问题讨论】:

  • 您找到解决方案了吗?
  • @Drown 我发布了我所做的事情

标签: node.js ffmpeg electron screen-recording


【解决方案1】:

我最终使用 obs-studio 等高级 3d 方应用程序的可移植模式,并将它们添加到我们的最终包中。我还创建了一个 js 文件来使用 CLI 控制应用程序

这样我可以预先设置我的选项(例如 crf 值等),现在我们在 3:30 小时值和 1080p 分辨率下的平均输出大小约为 700MB,这令人印象深刻

【讨论】:

    猜你喜欢
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2013-07-19
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2021-06-05
    相关资源
    最近更新 更多