android - Websockets 上的视频流

标签 android ios websocket video-streaming webrtc

我正在尝试构建可以从双方流式传输视频的移动应用程序(即视频通话之类的东西)。

我研究了 webrtc,但它还没有为移动原生应用做好准备,无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等。但是在原生移动应用中捕获相机和音频是'这不是问题,基本上需要非常低的延迟和双传输层。在许多文章和地方,我读到关于在 websockets 上使用 webrtc。

所以我想我可以使用 websockets 流式传输视频。它是正确的还是我遗漏了什么?

我知道还有一个区别是 webrtc 是直接客户端到客户端...而 websocket 是客户端-服务器-客户端,无论如何要避免它。这对延迟意味着什么。

最佳答案

你错过了什么。

  • webRTC 在移动设备上运行良好。在 webrtc.org 的引用代码 (appRTCDEMO) 中有适用于 iOS 和 android 的示例/白色客户端,还有多个应用程序。最后一个宣布的是 appear.in

  • 从流中获取视频和音频流是 媒体 API 而不是 webRTC API(getusermedia)。

  • webRTC 确实是等式的 p2p 连接(RTCPeerConnection:传输和防火墙遍历)和媒体引擎(编码、打包、加密),正是您要找的东西。

  • webSockets 只是一种传输机制。它不处理防火墙/nat 遍历、媒体处理和打包/分块,而这些您随后必须在应用程序级别实现。

  • 信令而言,webRTC 没有指定/强加任何协议(protocol),看似通常的做法是设置一个信令服务器。该应用程序通常使用网络套接字或 XHR 或其他方式连接到该服务器以进行原始握手/调用设置。许多应用通过使用 socket.io 等库对此进行抽象。

关于android - Websockets 上的视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24094410/

相关文章:

java - 如何防止 ProGuard 混淆从 JAR 文件导入的库?

android - React Native Android 包因 --dev false 挂起

android - 如何使用单选复选框android在AlertDialog中选择一个条目?

ios - 将 stackview 中的项目在水平轴上彼此靠近对齐

flutter - 一起使用 flutter bloc 库和 websockets 的设计建议

android - 谷歌健身步数

ios - 试图让用户保存他们的个人资料 img。但我一直收到无法无参数调用 'user?' 的消息。

ios - UIApplicationDelegate 与 NSApplicationDelegate,MainMenu.xib

websocket - 用于 stomp over websocket 的 ActiveMQ 故障转移

javascript - websocket可以用来执行ajax吗