【问题标题】:Video recording with Edge using HTML5使用 HTML5 使用 Edge 进行视频录制
【发布时间】:2018-05-10 16:21:20
【问题描述】:

我正在尝试使用 HTML5 API 录制视频。我希望这个解决方案是跨平台的,它应该至少可以在 Chrome、Firefox 和 Edge 浏览器上运行。我尝试了以下代码

navigator.mediaDevices.getUserMedia({
  audio: true,
  video: true
}).then((mediaStream) => {

  const video = document.querySelector('video');
  const url = window.URL.createObjectURL(mediaStream);
  video.src = url;
});

以上代码在 Chrome 和 Edge 中显示视频。当我尝试使用 MediaRecorder API 捕获字节时,它只适用于 Chrome 而不是 Edge。请建议可以做什么。

const recorder = new MediaRecorder(mediaStream);
recorder.ondataavailable = onDataAvailable
...
function onDataAvailable(d){
   //d.data is populated in Chrome but not in Edge.
}

请建议,我如何捕获字节以便将其保存在服务器上。

我尝试了MediaStreamRecorder,但这也不适用于 Edge。

更新:我发现很少有方法表明使用 Canvas 作为渲染帧和捕获字节的选项。然后使用 requestAnimationFrame 继续捕获视频。虽然这可能有效,但我仍然愿意接受任何其他更好的建议。

【问题讨论】:

  • 所以首先不要将URL.createObjectURL 与MediaStream 一起使用,而是将Me​​diaElement 的srcObject 直接设置为MediaStream。现在,Edge 不支持 MediaRecorder API(虽然它是 under consideration),所以它是不行的。
  • 唯一的方法是在画布上绘制视频帧,将每个帧导出为独立图像,使用 Web Audio API 来提取音轨的原始 PCM 数据,最后以视频格式重新打包所有内容。我不相信这可以实时完成,你开发它可能比等待 IE 实现这个 API 需要更长的时间。
  • 你运气好吗?我自己目前正在反对这个问题,但在如何解决它方面并没有取得太大进展(我什至不在乎它是否是特定于 Edge 的实现)
  • 嗨@Peter Mellet,我无法为 Edge 找到可靠的解决方案。有人建议在边缘浏览器上使用 ORTC 或 webRTC,并使用 kurento 等媒体服务器录制流。虽然我可以录制视频,但由于带宽可变,视频质量是个大问题。

标签: html html5-video microsoft-edge web-mediarecorder


【解决方案1】:

MediaRecorder API 似乎只在 FireFox 和 Chrome 中实现

https://caniuse.com/#search=MediaRecorder

我会经常查看 caniuse.com 以了解浏览器对新 API 的支持!

【讨论】:

  • 您好 Zouhir,感谢您的回复。但它没有回答我的问题。我知道caniuse网站。我正在寻找的是在 Edge 中进行视频录制的可靠方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-29
  • 2020-06-01
相关资源
最近更新 更多