lin188241618570 2019-03-21 09:58 采纳率: 0%
浏览 1364

webrtc理论上是看了个大概可是不知怎么着手?

我已经大概在webrtc中文网看了一下内容:
在webrtc中SDP是用于交互多媒体流信息的最小不接去除单位


webrtc是先定位两个人的位置,然后两个人都跳到同一个链接里面进行数据互通。信令结束以后,就不需要web服务器在中间传递数据。

编解编码器的功能是压缩和解压音频和视频数据。

还有实现设备间的信息互通,可能需要中继TURN服务器,因为可能因为对方的防火墙和NAT和限制了(隐藏了IP地址或者)用于通信的洞,所以只好在通话的时候进行ICE协商。就是发起者这边发了一个offer,有关怎么找到要准备进行通话的小伙伴的方法。然后,将这个数据给到服务器,然后服务器再给到那个小伙伴,然后那个小伙伴就可以通过设备找到发起人,然后就可以开始设备之间的互通,而不需要服务器在中间传递数据。
webrtc 三大API
getUserMedia
PeerConnection
Data Channel

getUserMedia
应用:
#为用户文件档案拍照
#录制语音数据,并将数据发送到语音转文字引擎
#为用户录制语音或者视频,而且在掉包的情况下能保证语音及视频的质量不下滑

webrtc实例
https://www.jianshu.com/p/57fd3b5d2f80
Peer Connection
#生成并传递SDP (不是通过网络本身传递,而是生成他们并处理输入的消息)
#对音视频进行压缩和解压
#通过回声消除算法处理语音
#丢包隐藏,数据重传,抖动缓存区,估计宽带等功能

Data Channel
#信息传输的通道,设置通道是否可靠,设置可靠则可以自动重传。

#通道设计类似于websocketAPI界别的通道,所以可以用websocket的想法去看待它。

#通道设计类似于在websocketAPI级别上工作,所以可以用websocket的思考法式对待它。

想要一个webrtc的应用的实现方法,有以下几点:
1.客户端
2.信道
3.NAT
4.媒体

1.客户端
浏览器端使用javasrcipt进行开发,或者用框架,或者很多人都是直接从github上开始的。
如果是软件的话,应该挑选合适的sdk。
如果是pc,则使用psdn或者嵌入式的方法进行开发。
如果是pc的话,则可以用Electron进行完成,说着用嵌入式的方式完成。

2.信道
你需要一个新到服务器,当然也可以不要。在用之前,你必须检查你的服务器是否有信道机制用于
非webrtc上。如果有,你可以在这些机制上搭载sdp消息和其他webrtc信令。

3.NAT
一下是你不应该做的:
#不用trun服务器
#不用公共服务器
#不用stun公共服务器
#所有服务都在同一个服务器上实现
#不要一上来就想布置世界级的全球服务网络。

以下是你应该做的:
#部署stun和turn在同一进程
#stun和turn应该在同一个服务器上部署,而且要部署到同一进程中。
#用coturn,几乎所有人都在使用。
#你也可以从其他公司获取NAT服务,例如XirSys和T willio也是不错的选择。

4.媒体
如果你使用pstn或者视频会议,音频或者更高级的功能,建议使用一个媒体服务器。
现在市面和商业服务器有很多,他们在很很多方面是有区别的。
现在开源和商业的服务器有很多,他们在很多方面都是有区别的。

webrtc使用领域前瞻
1.机器学习和人工智能

2.在线学习

3.在线医疗

4.社交媒体

webrtc打洞就是将交换数据双方ip,port和nat信息通过信令服务器进行交互,然后双方各自获得对方的信息后就进行穿透,stun对p2p依然后有问题,所以还需要用到ICE。然后libjingle就是ICE思想的具体实现。


但是我不知道怎么着手去弄,信令服务器我查了,没有说买信令服务器的,都是说配置的。所以我不知怎么做了?希望有哪位老师指点一下。感激不尽!

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-08 10:54
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    Webrtc是一个基于Web的技术,主要用于实时通信,包括视频、音频和文本聊天等。为了更好地理解如何使用Webrtc,我们可以从几个关键步骤入手:

    1. 安装必要的库:首先,您需要安装Node.js来运行Webrtc应用程序。您可以访问Node.js官网下载最新版本。

    2. 设置环境变量:确保您的系统已正确设置了环境变量,以便于后续操作。

    3. 创建项目结构:创建一个新的项目文件夹,然后在其中创建一个名为index.html的HTML文件以及相关的CSS和JavaScript文件。这将是您的Webrtc应用的主要入口点。

    4. 编写代码:根据Webrtc文档,您需要编写相应的JavaScript代码以实现以下功能:

      • 用户身份验证:可以使用WebSocket API或其他协议(如SASL)进行身份验证。
      • 媒体流传输:可以通过PeerConnection API向多个会话提供媒体流。
      • 数据通道:可以使用DataChannel API建立数据通道以支持双向通信。
      • 消息路由:可以使用UserAgent API或第三方库(如webrtc-useragent)实现消息路由。
      • 路由策略:可以使用Route Manager API或第三方库(如route-manager)实现路由策略。
    5. 运行应用:最后,在浏览器中打开您创建的HTML文件,您应该可以看到Webrtc应用正在正常运行。请注意,由于Webrtc的应用通常需要与Web服务器配合使用,因此实际应用时可能需要考虑如何处理服务器问题。

    6. 添加依赖项:如果您选择使用第三方库(如webrtc-useragent或route-manager),则需要添加它们作为依赖项。这可以通过npm或yarn等包管理工具来完成。

    请注意,这只是一个基本指南,具体实现可能会因不同的情况和需求有所不同。我们强烈建议参考官方文档和相关资料,以确保您的应用能够安全、高效地运行。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀