首页 > 解决方案 > Safari 录制的 Angular 8 中的视频加速问题

问题描述

我已经在我的 Angular 项目中实现了 WebRTC 来录制视频。保存后我们可以将其发送到附件。这在 Windows 操作系统中正常工作,但在 mac safari 中,视频加速,30 秒视频仅变为 3 秒。这只发生在野生动物园中。

在这里开始视频。

  mediaDevices.getUserMedia({ video: true, audio: true })
  .then(webcamStream => {
    this.webcamStream = webcamStream;
  })

MediaRecorder 代码:

this.recorder = new MediaRecorder(this.webcamStream, {mimeType: 'video/mp4'});
this.recorder.onstart = () => 
    this.zone.run(() => {
      this.behaviorService.isRecording(true); 
    });
this.recorder.onstop = this.onRecorderStopped;
this.recorder.ondataavailable = (event) => 
    this.zone.run(() => { 
      this.data = [...this.data, event.data]; 
  }); 
this.recorder.start();

当视频停止时,它会保存在video/webm;codecs=h264这个 mimeType 中。我也尝试过使用视频/mp4,但它也无法正常工作

我可以获得适用于两种操作系统的任何解决方案吗?

标签: javascriptangularwebrtcgetusermediarecordrtc

解决方案


Safari.getUserMedia()在 MediaRecorder 类方面是出了名的坏。

我可以获得适用于两种操作系统的任何解决方案吗?

还没有。纠缠苹果。同时在 MacOS 上使用 Chrome:它可以工作。

可能有一些技巧可以推荐以使其变得更好。但是您没有向我们展示您的MediaRecorder代码:那是流被压缩的地方。


推荐阅读