问题标签 [libjingle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
477 浏览

c - 2路TCP多路复用

我在现有的 TCP 库之上构建了一个简单的多路复用协议。这允许我在单个 TCP 连接中拥有多个“通道”。当所有数据都向一个方向发送时,它工作得很好。例如,我可以通过一个通道发送文件并在另一个通道上发送消息。当所有数据都向一个方向发送时,一切正常:

TCP 连接:
通道 1 --- 文件上传 ---> 通道 1
通道 2 --- 消息 ------> 通道 2

当我尝试在一个方向上传并在另一个方向发送消息时会出现问题:

频道 1 --- 文件上传 --> 频道 1
频道 2 <---- 消息 ---- 频道 2

文件传输正常,但消息(通常)在文件完成传输之前不会传输。这是 TCP 流的已知问题吗?

具体来说,我使用 google 的 libjingle 库来建立单个 TCP 连接(实际上它是一个伪 TCP over UDP 实现)。我确信消息数据实际上是通过流发送的,但另一方面,直到文件在通道 1 上完成上传后才会触发 SE_READ 事件。

我当然不是 TCP 方面的专家,希望能得到任何帮助。谢谢。

0 投票
1 回答
619 浏览

sockets - 在多种设备类型上通过防火墙和 NAT 进行 p2p 传输的方法

我正在构建一个系统,该系统依赖于中央服务器将第一个用户(在移动或桌面应用程序上)的 IP 地址和端口发送给第二个用户(在移动或桌面应用程序上)。第二个用户与第一个用户建立P2P加密连接,使用中心服务器发送的IP地址和端口,直接发送一个大文件(理想情况下,实际文件不经过中心服务器)。

即使用户在不同的防火墙/NATs 和移动或桌面设备上,该系统也需要工作,而不需要用户手动打开端口。

我一直在研究 NAT Traversal Protocol (Teredo IPv6)、libjingle(Google 的开源套件)、STUN、直接套接字连接和用户之间的直接 VPN。

如果我正确地接近这个,我很困惑。所有这些选项都会独立解决这个问题吗?还是我接近这个错误?即使在 IPv4 路由器后面,直接 IPv6 连接会直接出来吗?

0 投票
0 回答
408 浏览

video-streaming - 如何从基于 peerconnection_client 的 webrtc 客户端录制视频?

如何从基于 peerconnection_client 的(libjingle)webrtc 客户端录制视频?

到目前为止我已经尝试过:

使用 StartRtpDump 保存 RTP 转储:http ://www.webrtc.org/reference/webrtc-internals/viertp_rtcp

但我无法播放转储...请在此处查看详细信息。

任何其他建议如何播放此 RTP 转储,或如何以其他方式录制/重新流式传输视频?

0 投票
1 回答
4822 浏览

android - 使用 libjingle 在 Android 上使用“自定义”捕获器创建 WebRTC VideoTrack

如何使用“自定义”视频捕获器创建 VideoTrack 并提供帧?

创建 VideoTrack 的经典方法是:

1 - 获取 VideoCapturer 实例

2 - 创建一个视频源

3 - 使用视频源创建 VideoTrack

4 - 将轨道添加到 MediaStream


我想知道是否有办法改变step one。不使用原生 Capturer 实例,而是使用 Android 实例,并使用回调将帧提供给 VideoTrack:

有什么建议么?

0 投票
1 回答
5999 浏览

android - 无法设置远程提供 sdp:使用没有 SDES 加密的 SDP 调用

尝试使用基于APPrtcDemo的Android应用程序进行WebRTC。从 Chrome 34 Everythings 连接时工作正常,但是当我使用 Chrome 35 进行视频通话时 f 出现此错误。

这里是媒体限制,我正在尝试使用

这是代码设置远程描述

0 投票
0 回答
521 浏览

c++ - 如何使用 libjingle 正确登录 xmpp 服务器

我有一段非常基本的代码,用于登录 libjingle 中的 xmpp 服务器。

我无法登录服务器。我确信参数是正确的,因为我检查了 xmpp 客户端程序。

我的顺序是这样的:

  1. 创建XmppPump.
  2. 的设置回调xmppPump.client().SignalStateChange,当通过XmppEngine.
  3. 启动信号线程并阻塞在XmppPump::DoLogin完成后将被解除阻塞的未来。

0 投票
1 回答
2224 浏览

webrtc - WebRTC 库通过 AddSink 进行远程音频渲染

当连接建立并准备就绪时,我的webrtc::PeerConnectionObserver实现会收到一个调用

我从哪里拉webrtc::AudioTrackInterface出来的webrtc::MediaStreamInterface

我从这里得到一个有效的(非空)指针,调用它track

然后我继续调用track->AddSink(sink)sink我继承webrtc::AudioTrackSinkInterface并实现的类的实例在哪里

在这一点上,我希望通过解码的音频数据接收到我的具体类的常规回调,就像我在视频数据可用时接收到我webrtc::VideoRendererInterface的调用一样cricket::VideoFrame*,但我没有。

我究竟做错了什么?

0 投票
2 回答
1804 浏览

webrtc - 使用 libjingle C/C++ 的数据通道

我正在寻找一个使用 WebRTC 建立数据通道的非常基本的示例。给出的peer_connection示例是针对音频/视频的,我无法运行它们来理解代码流并自己编写数据通道的代码。我已经使用 JavaScript 浏览器完成了这项工作,现在想对本机应用程序做同样的事情。

0 投票
1 回答
2291 浏览

android - 在 Android 上的 WebRTC 中建立 DataChannel

我正在尝试在 Android 上建立 WebRTC DataChannel。但是,使用我根据 AppRTC 和 libjingle api 提出的代码,Android 会引发调试错误。我应该按照哪些步骤将 DataChannel 添加到 PeerConnection?我怀疑 RenegotiationNeeded(),但我似乎无法实现它。

到目前为止我的代码(只显示相关部分,以保持简短):

在我的 Logcat 中,成功记录的最后一条消息是“为数据通道创建观察者”。然后是日志输出(最后三行以类似的方式持续一段时间):

0 投票
0 回答
394 浏览

android - XEP-0167、libjingle_peerconnection.jar 和我的应用程序

我正在尝试开发一个 Android 应用程序,该应用程序应支持与其他同行的音频。

信令应该按照这个原理工作。 https://developers.google.com/talk/call_signaling

我在我的项目中包含了 libjingle_peerconnection.jar。而且我可以成功地从另一个使用 libjingle 构建的 PC 应用程序(通过 xmpp 服务器)接收 IQ 数据包。

例如

在我收到 session-initiate+transport-info 数据包之后,是时候创建我自己的数据包信息并将其发送回调用者了。

我假设我应该使用 libjingle_peerconnection.jar 中的类并提取我需要的信息。但是我该怎么做呢?