如何从相机捕捉直播流并观看直播或保存以供日后观看?

时间:2016-12-20 07:39:16

标签: live-streaming

我正在尝试建立一个在线考试门户网站。当学生开始考试时,他们的网络摄像头将自动启动并实时记录流并存储在服务器中。监考人员可以观看学生现场观看,也可以稍后观看已保存的直播节目。

我对此进行了研究,发现WebRTC是一个可能的解决方案,还有像Kurento这样的网关服务器。但后来发现Safari中不支持WebRTC,这是一个挫折!我的应用程序应该在任何现代浏览器的Web门户中成功运行,包括safari以及android或iphone。

那么有人可以建议解决我的问题吗?我应该使用哪种技术可以支持所有浏览器和操作系统?

此外,如果您可以提供指向良好文档或教程的链接,将会很有帮助。

2 个答案:

答案 0 :(得分:2)

您可以使用Mediadevices.getUserMedia(https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia)在浏览器上捕获网络摄像头流(chrome和firefox)。
要在safari上使用网络摄像头流,您必须使用pollyfill - https://github.com/Temasys/AdapterJS

要录制视频/音频流,您可以使用媒体录制器api https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder
(注意:由于没有支持/ pollyfill,录制流在Safari中仍然是一个挑战。但是,它在Chrome和Firefox最新版本上完美运行。)

有用的演示:

  • https://webrtc.github.io/samples/
  • https://mozdevs.github.io/MediaRecorder-examples/index.html
  • https://codepen.io/collection/XjkNbN/
  • https://hacks.mozilla.org/2016/04/record-almost-everything-in-the-browser-with-mediarecorder/

答案 1 :(得分:1)

WebRTC是一个问题......使用getUserMedia从相机捕获是另一个问题。 Safari也不支持。

目前Safari中没有视频捕获API。你唯一能做的就是为iOS制作原生应用。

更糟糕的是,由于Apple的限制性政策,其他浏览器(如Chrome)在iOS上瘫痪,因为它们不允许使用自己的浏览器引擎。

将基于标准的技术(如getUserMedia和WebRTC)用于基于Web的主要应用程序。如果你认为你的情况经济实现了它,那么你可以让iOS应用程序同时工作,直到Apple决定像其他人一样参与现代浏览器标准。