学习mediasoup,可以从mediasoup的官方文档中的example样例入手。官方样例 。以下是翻译。
官方文档中,共有如下8个样例,供读者进行学习。
1、versatica/mediasoup-demo
项目:https://github.com/versatica/mediasoup-demo
这是由mediasoup的作者制作的官方mediasoup-demo演示。 就是说,作者不希望该演示仅成为“ mediasoup参考”,而是鼓励开发人员阅读API文档。
mediasoup-demo具有一个Web客户端应用程序和一个服务器端Node.js应用程序:
- 客户端(前端页面)是由React开发的应用程序,其他库中引用(使用)mediasoup-client和protoo-client两个库。
- 服务器端是由Node.js开发的应用程序,其中使用了mediasoup和protoo-server两个库。
- protoo是一个用于客户端和服务器端的JavaScript库,protoo为客户端提供了一种方法,即通过WebSocket连接到共享room的简便方法。 该API为客户端和服务端均提供 请求/响应事务 和 通知。
- 作为替代WebSocket的方式有很多,读者可能更习惯用于socket.io。
2、versatica/mediasoup-broadcaster-demo
项目: https://github.com/versatica/mediasoup-broadcaster-demo
Made by mediasoup authors, this project is a libmediasoupclient based application that takes the system microphone and webcam and produces the media to the specified room in mediasoup-demo application.
这个项目是由mediasoup作者制作的,是一个基于libmediasoupclient(mediasoup客户端库)的应用程序,它使用系统麦克风和网络摄像头,产生媒体数据,然后发送到mediasoup-demo应用程序中特定的room。
简单的说:ffmpeg推松摄像头和麦克风到mediasoup
3、Kurento/mediasoup-demos
项目: https://github.com/Kurento/mediasoup-demos
包含mediasoup + Kurento集成项目。
4、vpalmisano/mediasoupbin
项目:https://github.com/vpalmisano/mediasoupbin
Mediasoup-demo的GStreamer插件。
5、havfo/multiparty-meeting
项目:https://github.com/havfo/multiparty-meeting
Web: https://letsmeet.no
使用mediasoup和WebRTC的多方网络会议。 它最初是作为mediasoup-demo的一个分支,但现在已经发展了很多其他内容。
6、ethand91/mediasoup3-record-demo
项目:https://github.com/ethand91/mediasoup3-record-demo
基于mediasoup和GStreamer或FFmpeg库开发的的简单音频/视频记录应用程序。
7、mkhahani/mediasoup-sample-app
项目: https://github.com/mkhahani/mediasoup-sample-app
由@mkhahani制作,一个基于Mediasoup和Socket.io的最小客户端/服务器应用程序。
8、daily-co/mediasoup-sandbox
项目:https://github.com/daily-co/mediasoup-sandbox/tree/master/single-page
可以跨浏览器测试的示例代码,此示例代码具有尽可能简单的信号传递和最少的依赖关系:
- 发送/接收音频和视频轨道
- 切换到其他输入设备并更换音轨
- 屏幕共享
- 从tracks中订阅和取消订阅
- 分别暂停发送者和接收者的tracks
- Simulcast(视频流的返送方式,根据用户网络带宽情况,采取不同品质的发送)
- 发送时设置最大Simulcast(高品质发送)
- 接收时设置最大Simulcast(高品质接收)
- 显示统计信息
- 显示“有源扬声器”。(显示激活的扬声器。)
9、其他
可以在 GitHub 中找到其他使用mediasoup的公共项目。
原文:https://mediasoup.org/documentation/examples/