【问题标题】:Video recording for Safari BrowserSafari 浏览器的视频录制
【发布时间】:2019-01-24 10:23:45
【问题描述】:

在我的示例 ReactJs 应用程序中,我使用 react-multimedia-capture - 它使用 navigator.mediaDevices.getUserMedia 和 MediaRecorder API 来录制视频。

我可以从 Chrome 录制视频,但在 Safari 中我无法捕获视频。错误类似于

MediaRecorder 未定义。

有人可以帮助我吗:
Safari 是否支持基本的视频捕捉?

【问题讨论】:

  • 它们确实支持捕获(即 getUserMedia),但它们还不支持 MediaRecorder API。除了在画布上绘图和从静止图像生成视频之外,这里没有什么可做的,但不要这样做。
  • 该死的苹果,太贵了,有太多不受支持的功能哈哈:D

标签: javascript html safari getusermedia


【解决方案1】:

Safari 目前默认不支持 MediaRecorder API,但您可以从开发 > 实验功能 > MediaRecorder 启用它们。

从 safari 录制视频的方法是使用点对点连接并在另一端捕获视频。 提供此功能的开源应用程序和第三方服务很少,而且非常稳定。

如果您只支持从手机录制,您可以使用 HTML5 文件 API,单击即可弹出摄像头。您可以使用 ffmpeg 或 azure 媒体服务将其修剪到特定的持续时间。

<input id="videoFile" type="file" class="hidden" accept="video/*" capture="">

只需确保使用 JavaScript 将此文件保存为 .mp4 文件,以使其可在所有设备上播放或使用 <video> 标签。

var file = $('#videoFile')[0]; var blob = file.files[0].slice(0, file.files[0].size, 'video/mp4'); var newFile = new File([blob], 'video.mp4', { type: 'video/mp4' });

【讨论】:

    【解决方案2】:

    在最新的 Safari 中,您可以从“开发”菜单中启用 MediaRecorder。

    试试这个Cam Recorder HTML5 demo,它还提供了 Safari 的详细说明。

    【讨论】:

      【解决方案3】:

      MediaStream Recorder API 的基本实现刚刚在 macOS 上的 Safari Technology Preview 73(2019 年 1 月)中引入。

      我在this article 中介绍了支持/不支持的功能。

      希望更完整的实现能够很快在 macOS 和 iOS 上支持 Safari 12.x。

      【讨论】:

      【解决方案4】:

      Octavian Naicu

      MediaStream Recorder API 的基本实现刚刚在 macOS 上的 Safari Technology Preview 73 中引入(2019 年 1 月)。

      您是否尝试在 Safari IOS 12.2 上进行视频录制?

      Why does upload image via camera work on mobile-safari but not as iOS PWA?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-21
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        • 2015-06-05
        • 1970-01-01
        相关资源
        最近更新 更多