使用 MediaRecorder API 无法在录制的视频中进行搜索

2023-12-20

我正在尝试使用 MediaRecorder API 构建屏幕录制。

作为暗示性媒体记录的方法

var chunks = [];
var recorder = new MediaRecorder(stream);

recorder.streams = [stream];

recorder.ondataavailable = function(e) {
    chunks.push(e.data);
};

recorder.onstop = function(){
      var blob = new Blob(chunks, {type: "video/webm"});
      chunks = [];

      var mimeType = 'video/webm';
      var fileExtension = 'webm';

      var file = new File([blob ? blob : ''], getFileName(fileExtension), {
          type: mimeType
      });
};

使用这种方法录制工作正常,但录制的视频搜索不起作用。

我在网上做了一些关于这个问题的搜索,我发现视频标题不包含持续时间。

打印时file控制台上的对象它包含以下属性,

lastModified : 1527592713006
lastModifiedDate : Tue May 29 2018 16:48:33 GMT+0530 (India Standard Time) 
name : "Recording-May,29 2018 4:48:33 PM.webm"
size : 1971220
type : "video/webm"
webkitRelativePath : ""

可以看到文件对象不包含持续时间属性。

任何人都可以建议任何可用的 JavaScript 库,它只能在准备视频文件时在客户端修复视频标头吗?


看看 getSeekableBlob 在https://recordrtc.org/ https://recordrtc.org/

这是代码:

function getSeekableBlob(inputBlob, callback) {
    // EBML.js copyrights goes to: https://github.com/legokichi/ts-ebml
    if (typeof EBML === 'undefined') {
        throw new Error('Please link: https://cdn.webrtc-experiment.com/EBML.js');
    }
    var reader = new EBML.Reader();
    var decoder = new EBML.Decoder();
    var tools = EBML.tools;
    var fileReader = new FileReader();
    fileReader.onload = function(e) {
        var ebmlElms = decoder.decode(this.result);
        ebmlElms.forEach(function(element) {
            reader.read(element);
        });
        reader.stop();
        var refinedMetadataBuf = tools.makeMetadataSeekable(reader.metadatas, reader.duration, reader.cues);
        var body = this.result.slice(reader.metadataSize);
        var newBlob = new Blob([refinedMetadataBuf, body], {
            type: 'video/webm'
        });
        callback(newBlob);
    };
    fileReader.readAsArrayBuffer(inputBlob);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MediaRecorder API 无法在录制的视频中进行搜索 的相关文章

随机推荐

  • 如何将 Ransack 搜索保存到数据库?

    我正在尝试将 Ransack 搜索保存到数据库中 我相信我应该能够存储params q 值 然后当我想调用搜索时将其附加到搜索 URL 我不知道如何保存params q 不过 值 Ransack 创建的 URL 是这样的 http site
  • 极限分片:每个用户一个 SQLite 数据库

    我正在开发一个介于电子邮件服务和社交网络之间的网络应用程序 我觉得它未来有潜力变得非常大 所以我担心可扩展性 我决定为每个活动用户创建一个单独的 SQLite 数据库 每个 分片 一个活动用户 而不是使用一个集中式 MySQL InnoDB
  • 如何使用log4j2删除旧日志

    仅供参考 我已经在网上搜索了很多文档 我使用的是storm 0 10 0 beta1 Storm中log4j2的配置文件是worker xml 现在 我尝试使用log4j2 我正在寻找删除旧日志的方法 但我找不到 部分配置如下
  • 在“for in”循环中访问迭代器

    根据我的理解 当运行如下代码时 for i in MyObject print i 我的对象 iter 函数运行 for 循环使用它返回的迭代器来运行循环 是否可以在循环中访问此迭代器对象 它是一个隐藏的局部变量 还是类似的东西 我想做以下
  • UITextView 加载时未滚动到顶部

    当我的文本未填充 UITextView 时 它会按预期滚动到顶部 当文本超出屏幕所能容纳的范围时 UITextView 会滚动到文本的中间 而不是顶部 以下是一些可能相关的详细信息 在 viewDidLoad 中在 UITextView 的
  • 在 Django 模板中显示反向多对多

    我正在为小型销售 CRM 应用程序创建警报 通知系统 我有一个 Lead Contact 模型 用于存储客户的姓名 地址等 以及一个 Contact Notifier 模型 用于跟踪首次联系客户的时间 最后一次联系以及我们何时进行下一步联系
  • Python Tkinter 根标题不起作用

    我似乎无法给我的窗口命名 他们都有标题 Tk 我相信我的代码是正确的 所以如果这是错误的 请纠正我 from Tkinter import root Tk root title Title root mainloop 标题仍然是Tk 我可以
  • 为什么VS代码中的这个问题匹配器不起作用?

    为什么我的 ProblemMatcher 不起作用 我对正则表达式非常确定 但它没有报告任何问题 即使标准输出上有一些问题 the matcher problemMatcher owner typescript fileLocation r
  • PAR::Packer 如何工作?

    我正在使用 PAR Packer 这个问题突然出现在我的脑海中 PAR Packer 在 Perl 中如何工作 真的吗compilePerl 脚本到 exe 就像 g 将 C 源代码编译到 exe 一样 还是像 Python 中的 py2e
  • 自首次启动以来的时间

    我正在开发一个 Android 应用程序 并遇到了确定系统首次启动时间的问题 我的意思是我需要测量多少从设备首次启动起已经过了时间 我知道有关侦听 ACTION BOOT COMPLETED 并将任何内容保存在 SharedPreferen
  • C# 与 C++ - 类型、继承和 vtable

    我无法理解导致 C 和 C 之间差异的原因 首先我们有一个例子 其中基类包含一个虚函数 class Base protected int super public virtual int f 0 class Derived public B
  • 我如何使用.NET 获悉我的客户端IP?

    我需要来自whatismyip com 的客户端IP 但我认为正则表达式模式不正确 你能帮我这个图案吗 您是否阅读了获取的 HTML 中的注释 请设置您的代码以进行抓取 你的IP来自 www whatismyip com automatio
  • Matplotlib 中 X 轴的换行符导致意外的窗口大小调整/跳跃/闪烁行为

    我正在 matplotlib 中的 x 轴上绘制日期和时间 因为我想绘制尽可能多的标签 所以我在 x 标签中使用换行符 如下所示 不幸的是 当我将鼠标悬停在图表上时 这会产生调整 matplotlib 窗口大小的副作用 因为它尝试在底部打印
  • Twitter Bootstrap 的 JQgrid 样式问题

    我使用 JQgrid 来显示信息并执行 CRUD 操作 我想要一个具有 Twitter Bootstrap 外观和感觉的页面 并且 JQGrid 显示一些数据 但是如果我导入 JQGrid 的 CSS 和 Bootstrap 的 CSS 则
  • 编译器未识别出歧义

    我不得不花一些时间来查找并修复我设法在以下代码中隔离的错误 include
  • 发送带有 Unicode 的 HTML 邮件

    我修改了 python 文档中的示例 以测试电子邮件模块中的 unicode usr bin env python coding utf 8 from future import absolute import division unico
  • MySQL“SET NAMES”靠近慢查询日志的顶部

    在最近启动的一个网站上 我注意到 在数百万个查询中 成本最高的请求实际上是 SET NAMES 其平均耗时超过 2 3 秒 而各种多连接并集的查询时间远远超过该网站上实际的繁重查询 查询时间远低于 2 秒 最后 这将它放置在慢查询日志的顶部
  • 如何收集类似于 panopticlick.eff.org 的信息 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 仅在 MSCHART 折线图的数据点上显示工具提示

    我在 C 4 0 中使用 mschart 生成折线图 并创建 DataPoint 来显示点上的工具提示 但问题是 工具提示出现在线条的每个点上 但是我只想在我的数据点上 您可能已经找到了问题的解决方案 因为这篇文章已经很旧了 但我想做同样的
  • 使用 MediaRecorder API 无法在录制的视频中进行搜索

    我正在尝试使用 MediaRecorder API 构建屏幕录制 作为暗示性媒体记录的方法 var chunks var recorder new MediaRecorder stream recorder streams stream r