媒体源扩展 (MSE) 与 WebRTC 的比较

2024-01-06

媒体源扩展和 WebRTC 之间的根本区别是什么?

我可以暂时表达一下我自己的理解吗? WebRTC 包含一个 RTCPeerConnection,它处理从媒体流获取流并将它们传递到协议以流式传输到应用程序的连接对等点。 WebRTC 似乎在底层抽象了许多更大的问题,例如编解码器和转码。这是正确的评估吗?

媒体源扩展适用于何处?我的知识有限,但见过开发人员运行自适应流的示例。 MSE 只处理来自您服务器的流吗?

非常感谢您的帮助。


不幸的是,这些与浏览器相关的新协议是由 W3C 和 IETF 以相当无组织的方式设计和开发的,并非完全由技术驱动,而是反映了 Apple、Google 和 Microsoft 之间的斗争,它们都试图标准化自己的技术。同样,不同的浏览器选择仅采用某些标准或标准的一部分,这使得开发人员的生活变得异常艰难。

我已经实现了媒体源扩展和WebRTC,所以我想我可以回答你的问题:

媒体源扩展只是浏览器内的播放器。 您创建一个 MediaSource 对象https://developer.mozilla.org/en-US/docs/Web/API/MediaSource https://developer.mozilla.org/en-US/docs/Web/API/MediaSource并将其分配给您的视频元素,如下所示video.src = URL.createObjectURL(mediaSource);然后,您的 javascript 代码可以从某处(您的服务器或网络服务器)获取媒体片段,并将其提供给附加到 MediaSource 的 SourceBuffer 以进行播放。

WebRTC不仅仅是一个播放器,它还是一个捕获、编码和发送机制。所以它也是一个播放器,并且使用它与媒体源扩展略有不同。这里创建了另一个对象:MediaStream 对象https://developer.mozilla.org/en-US/docs/Web/API/MediaStream https://developer.mozilla.org/en-US/docs/Web/API/MediaStream并将其分配给您的视频元素,如下所示video.srcObject = URL.createObjectURL(mediaStream);请注意,在这种情况下,mediaStream 对象不是您自己直接创建的,而是由 WebRTC API(例如 getUserMedia)提供给您的。

因此,总而言之,在这两种情况下,您都使用视频元素来播放,但使用媒体源扩展时,您必须自己提供媒体片段,而使用 WebRTC 时,您使用 WebRTC API 来提供媒体。而且,通过 WebRTC,您还可以捕获用户的网络摄像头,对其进行编码并发送到另一个浏览器进行播放,例如启用 p2p 视频聊天。

媒体源扩展浏览器采用情况:http://caniuse.com/#feat=mediasource http://caniuse.com/#feat=mediasource

WebRTC 浏览器采用:http://iswebrtcreadyyet.com/ http://iswebrtcreadyyet.com/

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

媒体源扩展 (MSE) 与 WebRTC 的比较 的相关文章

随机推荐

  • 如何在 psql 中包含与当前执行脚本相关的文件?

    我有一个 PostgreSQL 脚本 比如说 MAIN sql in sql 其中有类似的行 i components helper functions sql 如果 PWD 与我的脚本的目录相同 sql 但如果不是 它会查找相对于 PWD
  • 如何在不调用 onCreate() 的情况下返回第一个活动

    我有3个活动 活动A 活动B 活动C 这就是流程A gt B gt C 现在我想从 C 进入活动 A 即 C gt A 而不调用活动 A 的 onCreate 到目前为止我的代码是 但是它会调用Activity的onCreate 我想调用R
  • 使用 py2neo WriteBatch 将大图数据插入 Neo4j

    我有一个由以下文件表示的图表 VertexLabel txt gt 每行包含每个顶点的属性 EdgeLabel txt gt 每行包含每条边的属性 EdgeID txt gt 每行包含 3 个分隔的整数 对应于标签文件中的索引 源索引 目标
  • 如何在 PHP 中使用类常量作为类属性?

    这是不起作用的代码 class MyClass const myconst somevalue private myvar array 0 gt do something with self myconst 似乎类常量在 编译时 不可用 而
  • listStatus 端点包括响应中的收件人状态

    有没有办法在 listStatus 端点的响应正文中包含收件人状态 这是我提出的卷曲请求 curl X PUT https na2 docusign net restapi v2 accounts XXXXX envelopes statu
  • Javascript 相当于 Java 的 UUID 类

    在java中 你可以做类似的事情 UUID id UUID fromString eb66c416 4739 465b 9af3 9dc33ed8eef9 long msb id getMostSignificantBits long ls
  • 把jdbc操作放在actor中好不好?

    我正在构建一个传统的 Web 应用程序 通过 JDBC 执行数据库 CRUD 操作 我想知道将 jdbc 操作放入当前请求处理线程之外的参与者中是否合适 我做了一些搜索 但没有找到演示此功能的教程或示例应用程序 那么有哪些缺点和优点呢 这种
  • 如何在 PHP 中重命名子数组键? [复制]

    这个问题在这里已经有答案了 当我对名为 tags 多维数组 的变量进行 var dump 时 我得到以下信息 Array 0 gt Array name gt tabbing url gt tabbing 1 gt Array name g
  • 如何让查询生成器将其原始 SQL 查询输出为字符串?

    给出以下代码 DB table users gt get 我想获取上面的数据库查询生成器将生成的原始 SQL 查询字符串 在这个例子中 它将是SELECT FROM users 我该怎么做呢 Answer recommended by PH
  • 以编程方式更改 Android EditText 的色调颜色

    我正在尝试改变一个的着色颜色EditText在运行时以编程方式查看 基本上我想改变你通常应用的内容 attr colorControlNormal就像在默认背景可绘制 https github com android platform fr
  • nth-child:如何选择两个一组的元素

    假设我有一个这样的表 div class fc slats table tbody tr td class fc widget content fc major 16 td td class fc widget content fc min
  • play 和 postgres 未找到关系错误(虽然表确实存在)

    我有一个名为 ETL TABLES 的表 它驻留在公共模式上 在 我的 application conf 我有以下行 hibernate default schema public 这应该意味着 postgres 的 search path
  • Android - 等待齐射响应以继续

    我构建了一个应用程序 它在地图中加载标记 我为 volley JSON 文件获取标记 但我需要首先加载 volley 然后继续执行代码 因为另一种方式显示错误纬度空 这个参数加载得不快 另一个方法先执行并显示 null 我的负载标记齐射代码
  • React/TypeScript:具体为组件输入 props.children

    假设我们有一个组件Foo呈现props children和另一个组件Bar 两个模块都导出一个 props 接口 有没有办法强制执行Foo的孩子可以是only类型的Bar 理想情况下 我们可以在构建时使用 TypeScript 来完成此任务
  • 在 CakePHP 3 中连接多个数据库

    我想将一些数据历史记录和日志存储在其他数据库表中 就未来的记录而言 这可能是非常大的数据库 还应该支持跨数据库 SQL 连接 所以请帮我解决这个问题 提前致谢 您可以按照以下步骤在同一个 cakephp 应用程序中使用多个数据源 在 Con
  • .NET 中的标准输入和输出

    如何从标准输入读取并写入标准输出 System Diagnostics Process StandardInput 的 MSDN 参考没有帮助 因为它单独启动进程 然后重定向标准输入 输出 但是如果该进程已经在运行并调用我的应用程序来为其提
  • 需要一个 CouchDB 技巧来按日期排序并按组过滤

    我有包含 日期 和 组 字段的文档 这是我的观点 byDateGroup map function doc if doc date doc group emit doc date doc group null 与此等效的查询是什么 sele
  • Java 中的独立 Socket.IO 服务器

    我正在寻找一个用 Java 编写的简单 Socket IO 服务器 我熟悉this one http code google com p socketio java 但它依赖于 servlet 而我没有在我的应用程序中使用它 我正在寻找类似
  • Spark python中基于条件过滤RDD并提取匹配数据

    我有这样的数据 cl id cn id cn value 10004 77173296 390 0 10004 77173299 376 0 10004 77173300 0 0 20005 77173296 0 0 20005 77173
  • 媒体源扩展 (MSE) 与 WebRTC 的比较

    媒体源扩展和 WebRTC 之间的根本区别是什么 我可以暂时表达一下我自己的理解吗 WebRTC 包含一个 RTCPeerConnection 它处理从媒体流获取流并将它们传递到协议以流式传输到应用程序的连接对等点 WebRTC 似乎在底层