代码之家  ›  专栏  ›  技术社区  ›  Seyed Ali Roshan

在ElectronJS(Windows)中以高质量和最小尺寸录制屏幕

  •  0
  • Seyed Ali Roshan  · 技术社区  · 4 年前

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

    我的需求是:

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

    我所说的最小尺寸是指在720p上大约400MB,在1080p上大约700MB,录制3到4个小时。我们已经可以通过bandicam和obs实现这一点,这是可能的

    我已经试过了:

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

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

    0 回复  |  直到 4 年前
        1
  •  1
  •   Seyed Ali Roshan    4 年前

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

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

    推荐文章