可以, 但是不需要 webRTC 这个协议, 可以支持 移动端 与 PC端 。 可以使用 https://github.com/phoboslab/... 使用canvas画布渲染视频,通过 Swoole 的 WebSocket 来传输视频流。 具体步骤:(带摄像头的笔记本) Swoole创建 2个监听 一个WebSocket监听服务(用于视频流传输)。一个本地 【Unix Socket文件描述符】(用于ffmpeg转码后的视频流接受与转发给WebSocket客户端。) 游览器使用 jsmpeg 这个项目连接 Swoole 提供的WebSocket 服务来获取视频流播放。 使用ffmpeg 把直播的视频流 转码 为 mpeg 视频流格式 发送到 本地的Swoole 监听的【Unix Socket】文件描述符 比如:$serv->addlistener("/var/run/myserv.sock", 0, SWOOLE_UNIX_STREAM); 文件描述符: /var/run/myserv.sock Swoole 监听的文件描述符 的 onReceive 事件会收到 ffmpeg 转码的视频流。 在通过 Swoole的WebSocket方法push 给连接到 WebSocket服务的 客户端发送视频流。
Swoole
只是一个网络通信的库,你在Swoole
之上传输任何数据都是可以的。难点是在于
RTC
网络协议的实现,以及音视频编解码。