【发布时间】:2015-07-05 05:08:55
【问题描述】:
我有兴趣设计一个使用 DataChannels 但不使用音频和视频功能的 WebRTC/libjingle。音视频能力增加了很多依赖,依赖很大,很难交叉编译。是否有一个 WebRTC 构建的最小子集将仅分离出使用所有 sdp/stun/turn 等初始化 DTLS 数据通道所需的代码,同时保持与浏览器实现的兼容性?
【问题讨论】:
我有兴趣设计一个使用 DataChannels 但不使用音频和视频功能的 WebRTC/libjingle。音视频能力增加了很多依赖,依赖很大,很难交叉编译。是否有一个 WebRTC 构建的最小子集将仅分离出使用所有 sdp/stun/turn 等初始化 DTLS 数据通道所需的代码,同时保持与浏览器实现的兼容性?
【问题讨论】:
AFAIK 没有这种最小的、按比例缩小的、仅限数据通道的 libjingle 版本(或OpenWebRTC)。恕我直言,这样的版本看起来太特定于项目,而且不够通用,以至于 libjingle 开发人员无法对它感兴趣并对其进行维护。
音频/视频功能确实添加了很多依赖项。然而,为 android 或 iOS 交叉编译它们相对容易。毕竟只需要编译它们。他们没有必要实际工作。如果只是使用数据通道,那么音频/视频功能甚至都不会被初始化。
虽然音频/视频功能无法完全编译出来,但可以“遏制”。如果您查看webrtc-source-code/build/common.gypi,您会发现一个名为build_vp9 的变量默认为1。如果将其设置为0,则将删除一些与视频相关的依赖项。在.gyp 和.gypi 文件中有很多标志,我相信如果您调整它们,您将能够删除更多不必要的依赖项。
如果您有兴趣为 Raspberry PI 或其他不基于 Android 或 iOS 的嵌入式平台构建 webrtc,我建议您使用OpenWebRTC,因为它对这些环境有更好的支持并且更容易交叉编译(您不必与 gyp 和 ninja 打交道。
【讨论】:
这就是你需要的 http://www.meshcommander.com/webrtc
c 中的最小数据通道 WebRTC 实现,需要 openssl 用于 dtls。
优点
缺点
【讨论】: