当前位置: 首页 > 知识库问答 >
问题:

连续合并和blob流

周睿范
2023-03-14

在我的代码(Javascript)中,我使用了套接字。io将base64数据从代理传输到客户端,以建立视频通话功能。为此,每5秒或10秒,我将使用mediaRecorder录制视频,并将其发送到base64中的客户端,该客户端将每10秒转换为blob。

问题:所以,我想知道我可以在每10秒合并一个新的Blob,同时播放视频吗?

我已经尝试使用createObjectURL(blob),但这不起作用。

共有1个答案

冯卜鹰
2023-03-14

这整个方法有严重的缺陷,不会按照你想要的方式工作。

我正在使用插座。io将base64数据从代理传输到客户端,以建立视频通话功能。

对于视频通话,您需要低延迟。在浏览器中获取低延迟实时视频的唯一合理方法是WebRTC。这意味着您将不会使用套接字。IO,也不是Web套接字(嗯,无论如何,不是用于视频…可能是用于信号)。

Base64数据

不要这样做!Base64编码仅用于在基于文本的传输中发送二进制数据。即使您使用Socket。IO或网络套接字,你不需要bas64...它们都支持二进制传输。

如果使用Base64,带宽使用率将增加33%,同时浪费CPU内存却毫无益处。

问题:所以,我想知道我可以在每10秒合并一个新的Blob,同时播放视频吗?

Blob是不可变的。一旦它们被创建,你就不能改变它们。

您可以使用MediaSource扩展,但这不适用于MediaRecorder今天创建的视频(可悲的是)。你必须在视频服务器端转码。

实际上,因为这是视频通话,所以放弃整个堆栈并切换到WebRTC。

 类似资料:
  • 问题内容: 我有这样一张桌子: 而且我想选择连续的合并行。假设我有(简化)的资料,例如: 我想知道是否可以选择格式如下的行: 编辑: 这是SQLfiddle 我正在使用9.3版的Postgresql! 谢谢! 问题答案: 这是解决此问题的一种方法。创建确定是否一个纪录做了标志 不 重叠的前一个。这是一个小组的开始。然后取该标志的累积总和并将其用于分组: 这是一个SQL Fiddle。

  • 我有一个Azure Web作业,其中包含一些blob触发的函数。我通过门户上的添加作业对话框将其上传到Azure,并将其设置为“连续运行”预期的行为是,任何时候将blob添加 /modifiedblob中指定的容器都会触发调用相应的函数。但是这不会发生。 触发这些功能的唯一方法(在上传blobs之后)是停止web作业并再次重启它。 每次我重启作业时,这些功能似乎都被触发了,而且只触发了一次。任何后

  • 问题内容: 是否有可能继续进行后? 除了检索引发异常的行的ID,然后重新启动忽略该ID,我看不到该怎么做。 我正在使用Oracle数据库10。 问题答案: 您可以使用error_logging_clause进行此操作。(该链接用于插入内容,因为在MERGE的文档中,它表示其行为与插入内容相同。 对于您的情况: 请注意,error_logging_clause有一些限制。从文档中: 以下情况导致该语

  • 我在Leetcode上遇到了这个问题,我看到了解决方案,但我无法理解它为什么工作。它适用于模数的什么性质?我们怎么能说我们已经找到了一个和等于k的子数组,只看前面的模结果呢? 问题:

  • 问题内容: 我有一系列记录,其中包含一些具有时间有效性的信息(产品类型)。 如果分组信息(产品类型)保持不变,我想将相邻的有效期合并在一起。我不能与和一起使用简单的方法,因为某些产品类型(在示例中为)可以“消失”和“返回”。 使用Oracle 11g。 输入数据 : 预期结果 : 请参阅完整的SQL Fiddle。 问题答案: 这是一个孤岛问题。有多种方法可以解决此问题。这使用和分析功能: SQL

  • 问题内容: 我有日期Ymd格式的数组,该格式可以是相隔一天的十个设置日期的任意组合。 例如:这是全套: 2011-01-01、2011-01-02、2011-01-03、2011-01-04、2011-01-05、2011-01-06、2011-01-07、2011-01-08、2011- 2011年1月9日至01日 从该集合创建的数组可以是日期的任何组合-所有日期,其中一个日期,一些连续日期,所