通过 Websocket 传输视频

2024-03-05

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

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

所以我想我可以使用网络套接字流式传输视频。这是正确的还是我错过了什么?

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


你错过了一些东西。

  • webRTC 在移动设备上运行得非常好。 webrtc.org 的参考代码 (appRTCDEMO) 中有适用于 iOS 和 Android 的示例/白色客户端,以及多个应用程序。最后宣布的一项出现了。

  • 从流中获取视频和音频流是其中的一部分 媒体 API,而不是 webRTC API(getusermedia)。

  • webRTC 实际上是 p2p 连接(RTCPeerConnection:传输和防火墙穿越)和媒体引擎(编码、打包、加密),正是您所寻找的。

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

  • 信令就目前而言,webRTC 并没有指定/强加任何协议,看似常见的做法是建立一个信令服务器。应用程序通常使用 Web 套接字或 XHR 或其他方式连接到该服务器来执行原始握手/呼叫设置。许多应用程序通过使用像 socket.io 这样的库来抽象这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Websocket 传输视频 的相关文章

随机推荐

  • Apache mod_auth_form 如何锁定文件夹

    在我看来 我对 mod auth form 应该如何工作有一个根本性的误解 我参考了 Apache 文档的这一页 http httpd apache org docs current mod mod auth form html 我有一个公
  • 不同端口上的 Route 53 记录集

    我是一名 ruby 开发者 刚刚开始学习一些 Node js 我正在运行一个实例AWS主持我的rails带有乘客 nginx 监听的应用程序port 80 现在我想举办一个node js同一实例 t1 micro 上的应用程序并将其监听端口
  • UIViewController 不自动旋转

    正如标题所说 我的 UIViewController 无论如何都不会旋转 当它加载时 shouldAutorotateToInterfaceOrientation 被调用 但之后就不会了 更新1 这是一个非常非常奇怪的问题 至少对于我来说
  • 如何屏蔽nginx日志中POST正文的敏感信息?

    为了方便分析我们保存 request body访问日志中的字段 但是 帖子正文中存在一些敏感信息 例如密码或信用卡号 会在日志中暴露 我们怎样才能掩盖这些信息呢 password 1234asdf gt password 如果我编写一个 n
  • 如果 A 列为空,隐藏 Google 电子表格中的行吗?

    如果 A 列为空 我试图隐藏行 我想将其应用于特定工作表 第 1 周 第 2 周 第 3 周 第 4 周和第 5 周 这是我迄今为止第一周的代码 function ConditionalHideRow var ss SpreadsheetA
  • VSCode 添加随机百分比

    每次我使用终端打印出字符串或任何类型的字符时 它都会自动在每行末尾打印一个 每当我尝试从 C 或 php 打印某些内容时 都会发生这种情况 但还没有尝试过其他语言 我认为这可能是 vscode 的问题 并且不知道它是如何出现的或如何修复它
  • 如何从未签名的存储库安装 debian 软件包

    尝试从未签名的存储库将 Debian 软件包安装到 Debian 9 apt get allow unauthenticated update Get 1 http files freeswitch org repo deb freeswi
  • 在 WPF 中显示多维数据

    在 WPF 中显示多维数据的最佳方式是什么 直到运行时我才会知道数据的大小 形状 理想情况下 我想使用数据绑定 但这不是严格的要求 我正在考虑某种网格 但我不知道如何动态绑定到数据并让它计算出行数和列数 请提供建议和示例 听起来好像您想要一
  • 隐藏样式、块样式和无样式之间的区别

    我试图找出风格之间的差异 hidden block none 我正在尝试这个例子 但不幸的是这不起作用 有人可以告诉我答案吗 div hr DIV 1 hr div 你真的很接近 两种不
  • 用于输入/V 模型的 Vue 过滤器

    所以我对 ES6 SPA Javascript 和 Vue JS 非常陌生 我主要使用 JQuery 所以我有一个全局过滤器 Vue filter formatDate function value if value return mome
  • 在 Backbone.js 中,如何让模型超类默认值充当子类的默认值?

    我有一个定义一些默认值的类和一个定义一些默认值的子类 但是 当我创建子类的实例时 它只查看本地默认值 不会将其默认值与父类的默认值合并 有没有什么简单的方法可以做到这一点 而无需显式地将本地默认值与父默认值合并initialize每个子类的
  • Javascript:类属性在拖动事件期间变得未定义

    我对 Javascript 中的类还很陌生 我已经被困了几天试图理解为什么我的属性在我的所有方法中都变得未定义 我试图复制this https www kirupa com html5 drag htm到一个类中 但不成功 因为每次调用方法
  • 在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

    我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案 但该屏幕可能包含许多显示器 并且通常只有一个屏幕 除非有许多用户同时使用同一台计算机 关于获取屏幕几何形状的那些答案已经过时 因为它们没有考虑多个显示器 那么
  • 从 mysql 时间戳字段中选择不同的月份和年份,并在 php 中回显它们

    我的mysql表有一个createdOn列 其filedtype timestamp 的格式为2011 10 13 14 11 12 我需要的是显示与createdOn列不同的月份 年份 我已经搜索了堆栈溢出并能够使用以下代码回显几个月 s
  • Codeigniter上传路径无效

    下面的人给出了代码和文件夹结构 任何人都可以帮助我为什么会出现 上传路径似乎无效 错误 如何解决此错误 文件夹结构 Application System Upload 414208 代码点火器代码 config upload path up
  • 中传递多个变量' aria-label='使用 PHP 和 $_GET[''] 在 中传递多个变量'> 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • C#.net 中具有不同间隔的多个计时器

    我想要输入不同间隔的不同计时器 例如 如果我输入 4 则 4 个计时器创建并在 4 个标签中显示时间 其中第一个计时器的时间在 1 秒内变化 第二个计时器的时间在 2 秒内变化 第三个计时器的时间在 3 秒内变化4tn 计时器的时间在 4
  • 在 Azure 应用服务中部署前端和后端应用程序的最佳方法是什么?

    我们正在分别使用 Reactjs 开发前端应用程序和使用 Nodejs 开发后端应用程序 但我不太熟悉 Azure 应用服务后端的部署工作方式 我已经成功部署了我们的前端 它现在已在应用程序服务 URL 中启动并运行 但我不确定如何处理后端
  • 在android帮助中翻转位图?

    我想为我的游戏节省内存 我想问你 因为我找不到任何东西 上次我在这里问问题时我得到了很好的答案 我可以在 Eclipse 中翻转位图 这样我就可以节省精灵的内存吗 我发现的所有教程都是关于旋转而不是翻转 翻转位图的教程仅适用于 open G
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机