如何:将截屏视频保存到视频文件 ChromeOS?
Howto: Save screencast to video file ChromeOS?
有两个 Chrome apps/extensions 在网上商店引起了我的注意:
我知道 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.
中成功测试的工作选项
- Whammy.js:
此方法使用 canvas hack 来保存 webp 图像数组,然后将它们编码到 webm 容器中。虽然速度慢,但它适用于视频。没有音频支持。我现在正在处理这个问题。
- videoconverter.js(是 ffmpeg-asm.js):
这是ffmpeg to JavaScript using Emscripten的直接移植。它适用于音频和视频。它也是巨大的,脚本明智的,大约 25MB 未压缩。我没有在生产中使用它的另一个原因是 ffmpeg 目前所处的许可基础不稳定。
它没有得到尽可能多的优化。使其可靠地投入生产可能是一个相当大的项目。
希望这至少能为您提供研究途径。
有两个 Chrome apps/extensions 在网上商店引起了我的注意:
我知道 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.
- Whammy.js:
此方法使用 canvas hack 来保存 webp 图像数组,然后将它们编码到 webm 容器中。虽然速度慢,但它适用于视频。没有音频支持。我现在正在处理这个问题。 - videoconverter.js(是 ffmpeg-asm.js):
这是ffmpeg to JavaScript using Emscripten的直接移植。它适用于音频和视频。它也是巨大的,脚本明智的,大约 25MB 未压缩。我没有在生产中使用它的另一个原因是 ffmpeg 目前所处的许可基础不稳定。 它没有得到尽可能多的优化。使其可靠地投入生产可能是一个相当大的项目。
希望这至少能为您提供研究途径。