问题标签 [libnice]

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 投票
1 回答
1126 浏览

sip - VoIP 与 Farstream(SIP、ICE)

我正在做一个基本的 VoIP(音频+视频)程序。用户不会(很可能)在 NAT 之后,但没有 100% 的保证,所以我需要使用 ICE(libnice)。

另外,为了让用户能够互相呼叫,我需要 SIP(​​这样他们就可以自己注册并呼叫其他人)。

在寻找了一些 SIP 服务器之后,我想我会选择http://www.opensips.org/

我的问题是:我可以只使用远流进行 SIP,还是需要心灵感应或其他什么?

还有一个更普遍的问题:我走对了吗?

0 投票
0 回答
604 浏览

c++ - GLib 语法错误,同时使用最新的 GLib for win32 编译 libnice

一些必要的背景:

Libnice(p2p 库)旨在使用 2.28 Glib 编译(这里是 win32 编译自述文件https://github.com/jcaden/libnice/blob/master/README.win32),
但官方示例
(这个http:// cgit.collabora.com/git/user/kakaroto/libnice.git/plain/examples/sdp-example.c),
在 libnice 之前编译实现,显然是使用最新的 glib 东西编写的。
我认为,可以为较旧的示例重写示例,但最新的 glib 更加优雅和酷,这就是我希望使用它的原因。

现在,我的问题:

在尝试使用 Visual Studio 2010 使用最新的 GLib(从此处获取 http://www.gtk.org/download/win32.php)为 win32 编译 Libnice 时,我遇到了一些语法错误(其中很多)。您可以在此处查看日志https://gist.github.com/anonymous/71e2a80e57eb4b8ae6c1
是否可修复,如何修复?

PS:要使用最新的 GLib,我下载了自述文件中描述的相同内容;即 Glib 开发和运行时以及 zlib 和 gettext 运行时。

0 投票
1 回答
456 浏览

c++ - 在 Win32 上构建 libnice 0.1.5 及以上版本

我按照以下说明操作:https ://github.com/jcaden/libnice/blob/master/README.win32以便在 Win32 上移植 libnice。在 0.1.4 版本中一切正常。但是,当我尝试移植 libnice 0.1.5 及更高版本时,遇到了一些错误:

  • Struct _GMutex是一个未定义的 struct

  • 我找不到文件:inttypes.h,它包含在stunagent.c

如果您知道如何解决它,请告诉我。非常感谢。

0 投票
1 回答
1627 浏览

android - 为 Android 编译 libnice

我正在尝试为 Android 编译 libnice(具体为 v0.18),但遇到了一些麻烦。如何为 Android 编译 libnice?到目前为止,我已经在下面列出了我的尝试。

第一次尝试

我的第一次尝试是使用自定义的 Android.mk makefile,但我收到一条错误消息AI_NUMERICHOST undeclared(添加#include <netdb.h>并没有解决这个问题,我在这里没有想法)。请参阅下面的我的 Android.mk

静态库是从 gstreamer 1.4.1 调试版本复制过来的,并根据下面提到的指南进行选择。

第二次尝试

然后我尝试参考this guide编译一个静态库,这再次造成了麻烦:

这会导致以下错误。向 CFLAGS添加-mthumb或会在配置期间-marm产生C compiler cannot create executables错误。

提到的行不包含 ASM 但调用htonsand ntohl,所以我想我做错了什么......

make_standalone_toolchain从 NDK 使用各种 Android 版本来创建工具链。

有人可以帮忙吗?提前致谢!~

0 投票
0 回答
963 浏览

video-streaming - 通过 libnice 和 gstreamer 流式传输视频

我想将视频从 IP 摄像机流式传输到 NAT 后面的远程 PC。为此,我正在使用 libnice 和 gstreamer。

一方面,我实现了以下管道。

rtspsrc <-> nicesink

远程客户端管道

nicesrc <-> rtph264depay <-> h264parse <-> ffdec_h264 <-> autovideosink

但是,我无法在远程客户端上获取视频流。我正在远程客户端上的 nicesrc 元素上获取视频数据包,但是通过上述管道,我无法看到视频。

我如何知道数据包正在远程客户端上的 nicesrc 元素上:

我在 libnice 的接收回调中打印缓冲区长度。从那里,我还能够以 h264 格式录制视频并播放。但是远程客户端上的上述管道并未发生实时流式传输。

我还尝试将 capfilters 包含在 gstreamer 管道中,但没有成功。任何帮助都会得到帮助。谢谢

0 投票
1 回答
10055 浏览

autotools - AS_IF 和 AC_MSG_ERROR:错误:可能未定义宏

我在尝试构建 libnice-0.1.10 时遇到此类错误。对于解决方案,我正在关注可能未定义的宏: AC_MSG_ERROR,但仍然没有到达那里。

一些程序版本

我也加ACLOCAL_FLAGS="-I /.../share/aclocal"进去~/.bashrc

以下是来自 的报道autogen.sh

非常感谢您的帮助!

0 投票
1 回答
910 浏览

android - 链接器错误 Android - ndk:未定义对“G_STATIC_ASSERT”的引用

我正在为 arm64-v8 构建 android 项目,我正在使用 NDK-r10e。我已经使用它的依赖项(Glib 2.35.8)构建了构建 Libnice 0.13,并且我已经编译了 Glib 的所有依赖项(intl,iconv,ffi)。所以我成功地构建了 Glib 的静态库,然后使用我的 glib 库构建了一个 Libnice 静态库。现在我正在使用这些静态库来构建我的 android 项目,我收到以下错误,我不知道为什么它会给我这个链接器错误,因为在构建这些库时,一切对我来说都很好。

0 投票
1 回答
962 浏览

ssl - 使用 libnice 创建 GTlsClientConnection 时“TLS 支持不可用”

我有两个对等点通过中继服务器(coturn)连接的工作代码,并且在伪 TCP 上一切似乎都很好。我已经用nice_agent_attach_recv()and成功测试了消息交换nice_agent_get_io_stream()

但是当我尝试创建一个时,GTlsClientConnection我回来了:0:TLS support is not available

这是一些部分代码:

我是 libnice 和 glib 的新手。所以,我可能缺少一些基本的东西。

0 投票
2 回答
921 浏览

java - 事件未到达 kurento java 服务器

我是 Kurento 媒体服务器的新手,我正在尝试将一个事件从 kurento 媒体服务器发送到我拥有的 java 应用程序。

我使用以下步骤创建了一个事件:

编辑了interfacejson文件:

然后在我的.hpp文件中:

在我的.cpp文件中:

在我的 Java 服务器中,我使用以下方法注册了该事件:

但是在完成所有这些之后,我无法从 kms 接收任何事件,我查看了 kms 日志,我正在获取正在发送的事件日志,但我没有在 java 服务器端收到任何事件。

代码中有什么我遗漏的吗?

编辑 1:在 eclipse 控制台上我得到这个日志

编辑2: 以下是输出dpkg -l | egrep -i "kurento|nice|kms"

0 投票
0 回答
373 浏览

node.js - libnice 中的 Kurento Media Server 6.4 分段错误

我正在使用最新的 Kurento Media Server (6.4) 和 node.js 应用程序进行一对二通话。但是,Kurento 进程在 libnice 内部时不时崩溃:(多次崩溃指向相同的 lib 条目)

同时,最近记录到日志文件的调试事件是ice候选配对:

应用程序日志显示错误发生在生成两个 SDP 答案之后,并且就在startCommunication要触发命令之前:

完整的堆栈跟踪和登录可以在这个 gist中看到

我可以通过使用两个 Chrome 浏览器(Mac + Win)并拨打大约 10-15 次电话(呼出 - 挂起 - 呼出 - 挂起 ..)来重现这一点

如果有人可以提供任何提示、建议或指示,我将不胜感激。谢谢!

UPD:将 TURN 服务器从切换reciprocate-turn-server 1.9.7coturn 4.4.2.1