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

时间:2015-01-19 03:02:35

标签: google-chrome video getusermedia google-chrome-os screencast

两个Chrome应用/扩展程序引起了我对网店的关注:

  1. Screencastify
  2. Snagit
  3. 我知道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已实现的东西?

    怎么做?提前感谢您的回答。

1 个答案:

答案 0 :(得分:2)

视频文件的实际编码和保存功能尚未在Chrome中实现。 Mozilla目前处于一种新生状态。我不确定它在ChromeOS中的状态。不过,我可以通过Chrome浏览器为您提供一些我在开发过程中收集到的信息。

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

服务器端:
需要某种媒体服务器。我迄今为止发现的最好的免费/开源解决方案是Kurento。媒体流被上载(块或整个)或流式传输到媒体服务器,在那里它被编码并保存以供以后使用。这也可以作为中间人与点对点一起工作,记录为数据流。

客户端:
这完全是基于浏览器的编码。我目前在Chrome中成功测试了两种工作选项。

  1. Whammy.js
    此方法使用canvas hack来保存webp图像的数组,然后将它们编码为webm容器。虽然很慢,但它适用于视频。没有音频支持。我正在努力解决这个问题。
  2. videoconverter.js(是ffmpeg-asm.js):
    这是使用ffmpegEmscripten到JavaScript的直接端口。它适用于音频和视频。它也是巨大的,脚本方面,大约25MB未压缩。我没有在生产中使用它的另一个原因是ffmpeg目前处于不稳定的许可基础上。 它没有尽可能多地进行优化。这可能是一个让它可靠地生产就绪的项目。
  3. 希望至少为您提供研究途径。