如何使用 MediaStream 录制

新手上路,请多包涵

好的,我将尝试尽可能清楚地说明我的问题,但我很困惑,所以如果我没有传达信息,请告诉我。

我正在尝试使用 getUserMedia 来使用网络摄像头,然后使用它

http://www.w3.org/TR/mediastream-recording/

录制简短的捕获视频。问题是,当我尝试定义新的 MediaRecorder(stream) 时,我被告知它是未定义的。我以前没有使用过这个 api,所以我真的不知道我错过了什么。这是相关代码:

 function onVideoFail(e) {
console.log('webcam fail!', e);
};

function hasGetUserMedia() {
    return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||     navigator.mozGetUserMedia || navigator.msGetUserMedia);
}

if (hasGetUserMedia()) {
    window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia = navigator.getUserMedia ||
                        navigator.webkitGetUserMedia ||
                        navigator.mozGetUserMedia ||
                        navigator.msGetUserMedia;

    if (navigator.getUserMedia) {
        navigator.getUserMedia({video: true, audio: false}, function(stream){
        var video = document.querySelector('video');
        var recorder = new MediaRecorder(stream); <<<<<< THIS IS MY PROBLEM SPOT
        video.src = window.URL.createObjectURL(stream);
        video.play();

        // webcamstream = stream;
        // streamrecorder = webcamstream.record();
        }, onVideoFail);
    } else {
    alert('failed');
    }
} else {
alert('getUserMedia() is not supported by this browser!!');
}

我一直在尝试查看此内容以供参考:

HTML5 getUserMedia 记录网络摄像头,包括音频和视频

原文由 wvm2008 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 447
1 个回答

MediaStream Recording(或它定义的 MediaRecorder JS 对象之后的 Media Recorder API )现已在桌面上的 2 个主要浏览器中实现:

  • Firefox 30 音频+视频
  • Chrome 47、48 仅适用于在 chrome://flags 中使用 实验性 Web 平台 的视频。
  • Chrome 49 音频+视频

容器

  • 两者都记录到 .webm 容器。

视频编解码器

  • 两者均录制 VP8 视频
  • Chrome 49+ 可以录制 VP9 视频
  • Chrome 52+ 可以录制 H.264 视频

音频编解码器

  • Firefox 以 44.1 kHz 录制 Vorbis 音频
  • Chrome 49 以 48 kHz 录制 Opus 音频

演示/GitLab:

确保在 HTTPS 或本地主机上运行这些演示:

从 Chrome 47 开始,getUserMedia() 请求只允许来自安全来源:HTTPS 或本地主机。

延伸阅读:

免责声明:我在处理视频录制的 Pipe 工作。

原文由 octavn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题