如何:将截屏视频保存到视频文件 ChromeOS?

Howto: Save screencast to video file ChromeOS?

有两个 Chrome apps/extensions 在网上商店引起了我的注意:

  1. Screencastify
  2. Snagit

我知道 chrome.desktopCapture 以及如何使用 getUserMedia() 捕获用户桌面的实时流。

示例:

navigator.webkitGetUserMedia({
    audio: false,
    video: {
        mandatory: {
            chromeMediaSource: 'desktop',
            chromeMediaSourceId: desktop_id,
            minWidth: 1280,
            maxWidth: 1280,
            minHeight: 720,
            maxHeight: 720
        }
    }
}, successCallback, errorCallback);

我很想创建我自己的截屏应用程序,允许录音以及在视频的给定角落嵌入网络摄像头捕获,如 Screencastify。

捕获桌面和用户的音频和视频我知道,但是如何将它们组合在一起并制作成视频文件?

我假设有一种方法可以从 ChromeOS 上的 getUserMedia() 流创建视频文件。只有 ChromeOS 实现的东西?

它是怎么做到的?预先感谢您的回答。

视频文件的实际编码和保存尚未在 Chrome 中实现。 Mozilla 目前还处于初期阶段。我不确定它在 ChromeOS 中的状态。但是,我可以向您提供一些我在 Chrome 浏览器开发过程中收集到的信息。

将媒体流编码、保存和分发为视频的两种方式是客户端和服务器端。

服务器端:
需要某种媒体服务器。到目前为止,我找到的 free/open-source 最好的解决方案是 Kurento。媒体流被上传(块或整个)或流式传输到媒体服务器,在那里它被编码并保存以备后用。这也适用于点对点,充当中间人,记录数据流。

客户端:
这都是关于基于浏览器的编码。目前有两个我在 Chrome.

中成功测试的工作选项
  1. Whammy.js:
    此方法使用 canvas hack 来保存 webp 图像数组,然后将它们编码到 webm 容器中。虽然速度慢,但它适用于视频。没有音频支持。我现在正在处理这个问题。
  2. videoconverter.js(是 ffmpeg-asm.js):
    这是ffmpeg to JavaScript using Emscripten的直接移植。它适用于音频和视频。它也是巨大的,脚本明智的,大约 25MB 未压缩。我没有在生产中使用它的另一个原因是 ffmpeg 目前所处的许可基础不稳定。 它没有得到尽可能多的优化。使其可靠地投入生产可能是一个相当大的项目。

希望这至少能为您提供研究途径。