有没有办法使用 getUserMedia 减少延迟?

2024-04-19

在尝试减少视频延迟的同时WebRTC通信时,我测量了视频捕获和视频显示之间的延迟。

为了防止测量 WebRTC 涉及的延迟,我只是使用getUserMedia和一个 HTMLvideo显示流。

我通过每帧显示时间戳来做到这一点(使用requestAnimationFrame),使用 USB 摄像头录制我的屏幕并拍摄屏幕截图,其中视频显示和显示的时间戳都可见。

平均而言,我测量到的延迟为〜150ms。 这一定是高估了(由于requestAnimationFrame调用之间的时间),但是我所做的最小测量是 120 毫秒左右,这仍然很多。

Now, 有没有办法减少视频捕获和视频显示之间的延迟 ?


Note:

  • 我尝试使用另一个视频读取器(Windows 的内置读取器),测量结果非常接近(平均延迟约 145 毫秒)
  • 我尝试了另一个视频设备(我的带镜子的笔记本电脑网络摄像头),结果不太接近,但在我看来仍然较高(平均延迟约 120 毫秒)

一般来说,这只能在浏览器本身中修复。

requestVideoFrameCallback API 正在收集一些数字,例如 captureTime 和 renderTime。https://web.dev/requestvideoframecallback-rvfc/ https://web.dev/requestvideoframecallback-rvfc/有一个很好的描述,https://webrtc.github.io/samples/src/content/peerconnection/per-frame-callback/ https://webrtc.github.io/samples/src/content/peerconnection/per-frame-callback/将它们可视化。

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

有没有办法使用 getUserMedia 减少延迟? 的相关文章

  • AngularJS:选择非 2 路绑定到模型

    我正在使用选择来显示客户名称 用户应该能够选择现有客户端 然后更新范围属性 控制器 初始化 首选 if scope clients length gt 0 scope existingClient scope clients 0 View
  • 我需要一个 jQuery Autocomplete 使用 ajax 返回 id 和 name 的示例

    我需要一个示例 说明如何编写 jQuery 自动完成代码来填充product id 同时显示调用ajax 页面 remote php 的product name
  • Chrome 开发工具:无需切换到“源”选项卡即可进入调试器

    如果我把debugger https developer mozilla org en US docs JavaScript Reference Statements debugger当 Chrome 开发工具打开时 我的 JavaScri
  • 我可以使用 Google Analytics 确定用户浏览器对 HTML5 的支持吗?

    Google Analytics 分析 是否能够检测访问浏览器的 HTML5 支持级别 我想知道我的访问者浏览器中有多少百分比支持 HTML5 目前 获取此数据的唯一方法是分析访问者的浏览器统计信息 然后尝试在每个浏览器自己的帮助页面上查找
  • 将事件添加到 Google Maps API InfoWindow 内的元素

    我想在 Google Maps API v3 InfoWindow 内放置一个带有输入字段和提交按钮的表单 提交后 我想调用一个函数 该函数使用输入字段中输入的地址启动方向服务 这是我的代码 我目前只测试方向事件是否被触发 我已经编写了完整
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • Browserify:如果需要,使用 module.exports,否则暴露全局

    我正在考虑采用浏览器化 http browserify org 对于我的一些项目 但想确保其他人如果想使用 捆绑的 代码就不必使用 browserify 执行此操作的明显方法是通过以下方式公开模块导出module exports以及通过一个
  • 动态更改 vuejs 2 中的选择输入选项

    如何动态更改选择下拉 v model 中的选项 我有 2 个选择输入 其中一个应该根据其他输入进行更改 例如 如果我选择 水果 则选择显示水果 如果我选择 蔬菜 则选择显示蔬菜 我不使用Vuejs 但查看文档后 var TypesArr F
  • 如何使用 poedit 解析 Timber(树枝)模板并检测要翻译的引用字符串

    我想用 poedit 解析 Timber 的树枝模板 并且需要翻译引用的内容 问题是我找不到不跳过引用内容的解析器 Example
  • 将字符串转换为正确的 URI 格式?

    有没有简单的方法可以将电子邮件地址字符串转换为正确的 URI 格式 Input http mywebsite com validate email 3DE4ED727750215D957F8A1E4B117C38E7250C33 email
  • iPhone 点击时使 div 变暗

    当您的 div 附加了点击处理程序时 当点击该 div 时 iPhone 会使该 div 变暗 作为点击指示器 示例 在移动 Safari 上查看http jsbin com awejo3 4 http jsbin com awejo3 4
  • JavaScript 中的最短路径

    几周来我一直在寻找一种在 JavaScript 中计算最短路径的方法 我一直在玩书数据结构和算法作者 格罗纳 Groner 名字恰如其分 https github com loiane javascript datastructs algo
  • 如何显示 GroupList 的 FormArray?

    我正在尝试制作一个交互式表单 在每一行上列出一个项目以及一个删除按钮 在我的示例中称为 verwijderen 这些项目是从数据库中检索的 并且每个项目都实例化为名为的自定义对象LaborPeriod 然后这些对象被转化为FormGroup
  • 如何使用 Jquery .animate() 函数创建连续滚动内容? [复制]

    这个问题在这里已经有答案了 可能的重复 在jquery中实现圆形滚动条 https stackoverflow com questions 812049 implementing circular scroller in jquery 我想
  • Socket.io 与服务器离线连接

    如何检测服务器是否离线或由于其他原因无法连接 我的代码看起来像这样 this socket io connect connectionInfo reconnect false 它不会抛出任何错误 因此 try catch 子句不起作用 Us
  • 在React组件中使用的字符串变量中插入html

    我正在为我的投资组合网站构建一个反应应用程序 目前我已经用 JSX 编写了应用程序 因此我可以添加以下内容 class Project extends React Component render return div h1 this pr
  • 有没有办法从画布上清除一个元素而不消除其他元素?

    我正在使用画布构建页面加载器 并使用 es6 类 虽然目前我无法使其正常工作 原因之一是我找不到清除画布的方法进展 到目前为止 这是我的代码 class Loader constructor width height this width
  • 这个 JQuery 指令做什么 $(function(){...}) [重复]

    这个问题在这里已经有答案了 我最近一直在研究JQuery 尽管我知道一些东西 但书上有这样一句话我根本无法理解 function current entry 1 有谁知道这条线是如何工作的以及它的作用是什么 它类似于 JQuery 函数中的
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value

随机推荐

  • 从 .NET 生成带有图表的 Excel

    我有一个 WPF 应用程序 我需要生成一个也包含图表的 Excel 文件 最好的方法是什么 如果可能的话 我想避免使用 Excel 互操作 谢谢 L 看这个http epplus codeplex com wikipage title St
  • 使用 SharpZipLib 将文件添加到不带路径的 ZIP

    我需要将 3 个文件合并为 1 个 zip 文件 并可供用户下载 我能够实现我的要求 除了一件事 它将文件压缩到子文件夹中 例如 我的文件位置如下 C TTCG WebSites Health ABC CSV C TTCG WebSites
  • 在 API 21 中 EditText 填充不起作用

    在 API 21 中 EditText 填充不起作用 我尝试在空项目中执行此操作 仅使用单个 editText 但它仍然不起作用 以编程方式设置填充是可行的 但在我的工作项目中 我有很多具有不同填充的 EditText 并且以编程方式设置填
  • 为什么 Swift 2.0 打印数组中的最后一个元素而不是所有元素?

    我试图打印出该数组中的所有元素 当我显示它时 它只打印出 Pickup 衣物 var todo Return Calls Write blog Cook Dinner Pickup laundry for element in todo p
  • 如何使复选框的文本随着表单宽度的变化自动换行? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在 Windows 窗体中 我有包含长文本的复选框列表 窗体可调整大小 我可以让文本在运行时根据表单宽度自动换行吗 您可以使用 将 自
  • 在 Android Studio 中调试应用程序时如何“单步执行”或“单步执行”代码?

    我正在尝试遵循这个使用 Android Studio 进行调试 http developer android com tools debugging debugging studio html 如何单步执行或单步跳过代码 在调试器的变量选项
  • 测试期间重置Laravel数据库中的记录,但不重置数据库本身

    我现在正在测试我的 Laravel 应用程序 并面临下一个问题 我的项目是从无框架 PHP 项目迁移而来的 该项目已经拥有自己的数据库 因此我没有对大多数数据库数据进行迁移 在测试期间我需要刷新我的数据库 但就我现在而言 当我使用use R
  • Windows 中 CMake 的默认生成器是什么?

    在一台 PC 上运行 CMake 时 CMake 默认生成 NMake 文件 另一方面 它生成一个 Visual Studio 项目 我知道我可以通过添加来覆盖默认值 G NMake Makefiles 到我的 CMake 语句的末尾 但我
  • android autocompletetextview 应仅在下拉列表中显示相关选项

    我在代码中使用 AutoCompleteTextView 并使用 SimpleCursorAdapter 从数据库加载列表 AutoCompleteTextView cocktailIngredientView AutoCompleteTe
  • 应用程序更新时的 NSUserDefaults 行为

    我的 iOS 应用程序中有一个方法 可以在检测到我的服务器具有适用于我的应用程序的更高版本 新的 ipa 版本 时更新应用程序 如果用户想要下载它 该应用程序会在 iPad 上自行更新 问题是 当应用程序第一次打开新版本时 我想更新数据库中
  • Amazon Elastic Beanstalk npm 找不到 package.json

    我对亚马逊网络服务非常陌生 我正在尝试在他们的弹性beanstalk上设置一个node js应用程序 我设置了实例并上传 部署了站点 但是虽然运行状况 正常 但 node js 日志显示此情况重复了大约 30 次 npm ERR enoen
  • 如何使用 Netty 发送对象?

    如何通过Netty从服务器端发送bean并在客户端接收该bean 当我发送简单的整数消息 inputstream 时 它工作成功 但我需要发送 bean 如果您在客户端和服务器端使用 Netty 那么您可以使用 Netty对象解码器 htt
  • 以编程方式关闭 WP7 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 Windows Phone 7 关闭应用程序 https stackoverflow com questions 3659195 windows phone 7 close application 如
  • 表达忽略视图目录

    我已经设置了一个配置文件来存储我的 Express 应用程序的应用程序路径 cookie 秘密等设置 问题是它似乎忽略了我的视图路径目录设置 配置 js exports server port 3000 cookie secret path
  • 使用类的 __new__ 方法作为工厂:__init__ 被调用两次

    我在 python 中遇到了一个奇怪的错误 其中使用 new 将类的方法作为工厂会导致 init 实例化类的方法被调用两次 这个想法最初是为了使用 new 母类的方法根据传递的参数返回其子类之一的特定实例 而无需在类外部声明工厂函数 我知道
  • 需要类或命名空间;语法正确且正确

    在 dualstk h 中 ifndef 32 dualstk h define 32 dualstk h include
  • AWS 检查状态机/Step Functions 并发运行

    我在处理状态机 步骤函数 的并发运行时遇到很多问题 该状态机中确实有胶水作业任务 状态机由 Lambda 启动 并由 FIFO SQS 队列触发 lambda 获取消息 检查正在运行的状态机实例数量 如果该数量低于 GlueJob 并发运行
  • .htaccess 将一个文件夹中的所有文件重定向到另一个文件夹中的完全相同的文件

    我们只需将名为 音乐 的目录中的每个页面移动到名为 信息 的目录 这是唯一的更改 有很多指向音乐页面的链接 我们不想全部破坏 我不擅长重写条件 基本上 我想做的就是当用户输入 music index php 或 music life myp
  • 复合属性

    有没有办法在 C 中制作复合属性以在编译时提供等效的元数据 例如 改变 ClassInterface ClassInterfaceType AutoDual ProgId MyProgId MyMefExport MyProgId publ
  • 有没有办法使用 getUserMedia 减少延迟?

    在尝试减少视频延迟的同时WebRTC通信时 我测量了视频捕获和视频显示之间的延迟 为了防止测量 WebRTC 涉及的延迟 我只是使用getUserMedia和一个 HTMLvideo显示流 我通过每帧显示时间戳来做到这一点 使用reques