使用 WebRTC 和 PHP 的多客户端视频流

Multi client video streaming using WebRTC and PHP

我正在寻找创建一个 Web 应用程序,测验大师可以在其中将他们的相机流式传输给多个参赛者来展示测验。几天下来,我好像在兜兜转转。

首先,我设法在页面中显示主机摄像头,方法是:

const video = document.querySelector('video');
navigator.mediaDevices.getUserMedia({ video: true, audio: true }).then((stream) => { video.srcObject = stream});

到目前为止一切顺利。考官可以在网页上看到自己。现在我想知道如何将此视频传输给多个参赛者。我假设 WebRTC 是解决方案,但我可能离题太远了。我的设置是带有 Apache 和 PHP 的 CentOS 7 服务器,所以我正在寻找一个理想的 PHP 解决方案。所以我的问题如下:

  1. WebRTC 是解决方案吗?
  2. 我需要在 CentOS 服务器上设置 TURN/STUN 服务器吗?
  3. 这些服务器可以写成PHP吗?
  4. 此设置是否支持多个 quizzes/contestants?

抱歉,如果之前在 Stack Overflow 上对此进行过介绍。我发现了类似的问题,但很多问题可以追溯到 2010 年至 2014 年,而且这项技术发展迅速。 WebRTC 文档散落在各处,但同样,其中大部分已经过时和过时了。

是的,WebRTC 是解决方案,但您不能仅使用 PHP 和浏览器到浏览器的 WebRTC 来完成这一切,因为您需要一对多的视频流。因此,您需要 运行 在后端安装一个媒体服务器软件:测验主持人会将他的 WebRTC 流推送到该媒体服务器,多个参赛者将从该媒体服务器接收相同的流。

试试 Wowza Streaming Engine、Unreal Media Server、Ant Media Server。