如何使用webtc或来自视频标签的媒体流录制远程视频

How to record remote video using webrtc or media stream from video tag

本文关键字:视频 程视频 webtc 何使用 标签 媒体      更新时间:2023-09-26

你好,我正在使用webrtc设置one21视频通话。我可以录制本地视频,但不能录制远程视频。我想录制远程视频。请帮助! ! .

您可以使用RecordRTC或MediaStreamRecorder或MediaRecorder API来录制本地和/或远程视频。

对于远程视频,有两个选项:

  1. 记录peer.onaddstream事件视频
  2. 使用captureStream API从<video>标签录制视频

第一个是非常简单的,但是如果你必须访问javascript代码。

第二个选项也很容易通过这个chrome扩展:

  • https://chrome.google.com/webstore/detail/recordrtc/ndcljioonkecdnaaihodjgiliohngojp(此处开源)

captureStream API同时支持Chrome >=53和Firefox

Chrome仍然需要这个标志:chrome://flags/#enable-experimental-web-platform-features

如果您启用以上标志,重新启动chrome,并右键单击任何视频(在任何网页上),您将能够录制该视频。(无论是webbrtc视频、mp4或webm文件还是HLS/DASH直播)

下面是上述扩展的基本概念:

var streamFromVideoTag = videoTag.captureStream(15); // 15 is frame-rates
var recorder = RecordRTC(streamFromVideoTag, {type: 'video'});

对于onaddstream事件选项:

var recorder;
peer.onaddstream = function(event) {
   var streamToBeRecorded = event.stream;
   recorder = RecordRTC(streamToBeRecorded, {type: 'video'});
   recorder.startRecording();
};

可以在两个地方录制视频

  1. 本地:我个人认为这是一个坏主意,因为浏览器的存储容量有限。如果这是好的,然后我们可以继续使用RecordRtc或MediaStreamRecorder
  2. 远程服务器:这是一个更好的选择。它可以在服务器上录制与会者的视频。有很多方法可以做到这一点。我尝试过的一种方法是Kurento。它有Java和node.js实现的示例。示例