V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
as9567585
V2EX  ›  程序员

什么样的技术可以实现移动端的点对点实时语音, WebRTC 可以吗?

  •  
  •   as9567585 · 2023-02-11 02:57:47 +08:00 · 2541 次点击
    这是一个创建于 650 天前的主题,其中的信息可能已经有所发展或是发生改变。
    23 条回复    2023-02-13 10:28:48 +08:00
    as9567585
        1
    as9567585  
    OP
       2023-02-11 03:00:19 +08:00
    就是语音数据不经过服务器的那种
    as9567585
        2
    as9567585  
    OP
       2023-02-11 03:09:03 +08:00
    内网穿透如何处理呢?
    DefoliationM
        3
    DefoliationM  
       2023-02-11 03:20:34 +08:00 via Android   ❤️ 1
    直接用 UDP 不就行,搭个 stun 服务器,但是能不能 p2p 得看用户网络
    yangxin0
        4
    yangxin0  
       2023-02-11 03:22:32 +08:00
    关键词:moz webrtc
    as9567585
        5
    as9567585  
    OP
       2023-02-11 03:36:06 +08:00
    有什么项目已经有成熟的应用吗?
    as9567585
        6
    as9567585  
    OP
       2023-02-11 03:38:40 +08:00
    实时音频一般来说带宽占用是个什么情况呢?
    as9567585
        7
    as9567585  
    OP
       2023-02-11 03:41:39 +08:00
    如果一个用户是 ipv6 的公网 ip ,一个用户在 ipv4 的内网,他们之间可以 p2p 通讯吗?
    as9567585
        8
    as9567585  
    OP
       2023-02-11 03:49:19 +08:00
    @DefoliationM 想问下
    如果一个用户是 ipv6 的公网 ip ,一个用户在 ipv4 的内网,他们之间可以 p2p 通讯吗?
    xuanbg
        9
    xuanbg  
       2023-02-11 07:24:35 +08:00   ❤️ 1
    看来 OP 对于 p2p 网络不是一无所知,但却也是一知半解。语音不过是网络上的一种应用,和传文件也没多少区别。都是数据传输而已,底层还是建立 p2p 通道。p2p 语音的软件没见过,但可以参考的 p2p 传文件的工具就很多了。
    ysc3839
        10
    ysc3839  
       2023-02-11 08:06:33 +08:00 via Android   ❤️ 1
    @as9567585 IPv4 和 IPv6 不可以互相通信
    flyqie
        11
    flyqie  
       2023-02-11 09:07:00 +08:00 via Android   ❤️ 1
    这需求不用 webrtc 那就没啥好方案了。

    数据完全不经过服务器,那你打洞失败了咋办,肯定要有个 turn 服务器。
    deng81416754
        12
    deng81416754  
       2023-02-11 09:27:50 +08:00   ❤️ 1
    webRtc + turn 应该还要 信令服务器 sip
    duan602728596
        13
    duan602728596  
       2023-02-11 10:25:32 +08:00   ❤️ 1
    其实 webrtc 可以,不过不确定外国的 TURN Server Cloud 在国内能不能用
    opengps
        14
    opengps  
       2023-02-11 10:32:03 +08:00   ❤️ 1
    “完全不经过服务器”=“去中心化”≈“现在 web3”
    这个功能看起来是一个没有实际落地的方案
    OldCarMan
        15
    OldCarMan  
       2023-02-11 10:48:25 +08:00   ❤️ 1
    看看这个满足不满足你的需求: https://sipjs.com/guides/mobile/,不过内网穿透服务器是免不了的,而且这玩意如 3 楼所说,好不好取决于用户网络。
    我记得腾讯云有这方面专门的服务( https://cloud.tencent.com/document/product/647/32396 ),叫 TRTC ,不过是收费的,看你的需求。
    shwnpol
        16
    shwnpol  
       2023-02-11 10:54:53 +08:00
    Qtox?
    basncy
        17
    basncy  
       2023-02-11 12:20:33 +08:00
    linphone 开启 ice 可以, 需要至少一方是 NAT1. 当然双方 v6 就 p2p 了.
    Nnq
        18
    Nnq  
       2023-02-11 17:02:14 +08:00
    现在很大一部分是 webrtc v2 上有一个已经做出了开源项目
    hanguofu
        19
    hanguofu  
       2023-02-11 22:46:59 +08:00 via Android
    @Nnq : 请问是哪一个啊?求链接或关键词,谢!
    as9567585
        20
    as9567585  
    OP
       2023-02-11 23:27:11 +08:00
    @basncy 我看这个 linphone 主要是 1v1 聊天哈?
    “至少一方是 NAT1”,意思是只要有一方是公网 ip ,另一方不是公网 ip ,也能通过它的某种方案,实现不用 TURN 服务器也能实现 p2p 通信哈?
    MMMMMMMMMMMMMMMM
        21
    MMMMMMMMMMMMMMMM  
       2023-02-12 15:08:00 +08:00
    蓝...蓝牙?
    deng81416754
        22
    deng81416754  
       2023-02-13 09:23:52 +08:00
    不知道你需要什么端的,这是以前找的 webRtc Demo ,可以一对一 ,聊天室,语音,视频,只有信令交换是用到服务器的。https://github.com/ddssingsong/webrtc_android
    suke119
        23
    suke119  
       2023-02-13 10:28:48 +08:00
    你主要提到了移动端,实际上 webrtc 可以的,第一种是 h5 套壳,采用 web 端的 WebRTC 的 API ,天然支持;第二种就是 webrtc 对应的 java 语言的 API ,也是应用很普遍的现阶段。这个是我之前发的帖子 https://www.v2ex.com/t/913394#reply19 里面有线上预览 Demo ,兼容移动端浏览器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3021 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.