如何使用webrtc录制视频

2024-01-30

我需要在使用 Nodejs 构建的网站上使用笔记本电脑摄像头录制视频。为此,我使用 webRTC。到目前为止,我可以使用笔记本电脑摄像头拍照,但我需要录制视频。有人可以帮忙解释一下代码将如何进行吗?我当前的代码如下:

<video id="video"></video>
<button id="startbutton">Take photo</button>
<button id="pausebutton">Pause</button>
<button id="resumebutton">Resume</button>
<canvas id="canvas"></canvas>

<script type="text/javascript">
(function() {

  var streaming = false,
      video        = document.querySelector('#video'),
      canvas       = document.querySelector('#canvas'),
      //photo        = document.querySelector('#photo'),
      startbutton  = document.querySelector('#startbutton'),
      width = 620,
      height = 50;

  navigator.getMedia = ( navigator.getUserMedia ||
                         navigator.webkitGetUserMedia ||
                         navigator.mozGetUserMedia ||
                         navigator.msGetUserMedia);

  navigator.getMedia(
    {
      video: true,
      audio: false
    },
    function(stream) {
      if (navigator.mozGetUserMedia) {
        video.mozSrcObject = stream;
      } else {
        var vendorURL = window.URL || window.webkitURL;
        video.src = vendorURL.createObjectURL(stream);
      }
      video.play();
    },
    function(err) {
      console.log("An error occured! " + err);
    }
  );

  video.addEventListener('canplay', function(ev){
    if (!streaming) {
      height = video.videoHeight / (video.videoWidth/width);
      video.setAttribute('width', width);
      video.setAttribute('height', height);
      canvas.setAttribute('width', width);
      canvas.setAttribute('height', height);
      streaming = true;
    }
  }, false);

  function takepicture() {
    canvas.width = width;
    canvas.height = height;
    canvas.getContext('2d').drawImage(video, 0, 0, width, height);
    var data = canvas.toDataURL('image/png');
   // photo.setAttribute('src', data);
  }


  function pausevideo() {
    canvas.width = width;
    canvas.height = height;
    video.pause();
  }
  function resumevideo() {
    canvas.width = width;
    canvas.height = height;
    video.play();
  }


  startbutton.addEventListener('click', function(ev){
      takepicture();
    ev.preventDefault();
  }, false);

  pausebutton.addEventListener('click', function(ev){
      pausevideo();
    ev.preventDefault();
  }, false);

  resumebutton.addEventListener('click', function(ev){
      resumevideo();
    ev.preventDefault();
  }, false);


})();
</script>

我不会为你编写代码(如果你已经做到了这一步,你看起来很有能力),但这里有一些指导可以帮助你走向正确的方向。

  • 当您抓取流时,将其值分配给全局变量(这样您就可以在多个函数中重用相同的流)
  • 获得直播后,您可以轻松地按照以下教程进行操作RTC-录音 https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RecordRTC,有一种写入磁盘的方法可以帮助您下​​载录音

如果您有流,这是开始使用的方法RecordRTC.

   var options = {
      type: 'video'
    };
    var recordRTC = RecordRTC(mediaStream, options);
    recordRTC.startRecording();
    recordRTC.stopRecording(function(videoURL) {
        mediaElement.src = videoURL; //plays the recorded blob url on that src
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用webrtc录制视频 的相关文章

  • Html5视频录制和上传?

    我需要创建一个可以使用网络摄像头或移动摄像头录制视频的应用程序 它需要跨平台 到目前为止 我已经使用 webrtc getusermedia 编写了一个小型概念证明 它可以录制视频和播放 但我不确定如何将文件上传回服务器 这是此示例的链接h
  • 具有预编码 H.264 视频流的 Android WebRTC 客户端

    我有一个发送 H 264 编码视频字节的视频流源 我想使用 Android 的 WebRTC 类构建一个应用程序 将此视频流发送到 WebRTC 对等点 这些内置类似乎只支持原始视频源 而不支持已由编解码器处理的视频 我只需要创建仅包含一种
  • org.webrtc.RTCPeerConnection 无法将视频发布到服务器

    我使用 webrtc 在会议中发送和获取视频 子主视频正常显示 但问题是视频没有发布到服务器 我检查方法 setlocalDescription 没有返回错误 这是我的sdp 有人可以帮忙吗 我搜索了很多解决方案 但我仍然不知道我的问题 我
  • iOS 和 Safari 11 WebRTC 不收集 STUN/TURN Trickle ICE 候选者

    在 iOS 11 iPhone 5s 和 iPhone 7 或桌面上使用 Safari 11 时 我的 Web 应用程序无法通过 CoTURN 服务器收集 WebRTC 中继 ICE 候选项 Web 应用程序 建立单向音频 WebRTC 对
  • 将 WebRTC 与 WebWorker 结合使用

    我有兴趣将 webrtc 与 webworker 一起使用 是否可以 我尝试了 但没有成功 因为它没有找到 窗口 根据规格 1 https w3c github io mediacapture main dom navigator 2 ht
  • 在网络浏览器中实现一个好的 redis 客户端需要什么?

    之前已经有人问过这个问题我可以从浏览器中运行的 JavaScript 直接连接到 Redis 服务器吗 https stackoverflow com questions 5759120 can i connect directly to
  • 本地网络上的 WebRTC? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在阅读有关 WebRTC 的内容 它看起来非常有前途 我想制作一个简单的局域网游戏 自动连接同一网络上的人们 尽管我可以找到人们
  • 从 MediaStream 对象获取媒体详细信息(分辨率和帧速率)

    我正在捕获用户的相机 我想以尽可能最佳的分辨率捕获图片 所以我的代码类似于下面的代码片段 我想从传入流中读取分辨率详细信息 因此我可以将其设置为视频高度和宽度 我将用它来单击快照 我希望快照具有流提供的最佳质量 这可能吗 读取分辨率详细信息
  • 如何在java应用程序中使用webRTC特定模块

    我有一个简单的java应用程序应用程序客户端可以向服务器发送 接收纯音频 UDP 数据包 服务器将音频数据包转发给除发送者之外的所有人 现在我该如何使用webRTC 回声消除我的应用程序端的模块或其他功能模块 我发现可以使用 JNI 和 w
  • 我们可以将多个 html5

    我有两个视频 一个用于流式传输我的webcam另一个共享我的桌面屏幕 窗户 我需要合并这两个媒体流合而为一 这样我就可以将其另存为 mp4 文件并广播它WebRTC 我能够将两者结合起来VIDEO 流 标签通过将它们限制为DIV tag d
  • iOS Webrtc - 捕获本地视频流时崩溃

    我正在尝试使用 Google 存储库中的 webrtc 库 我按照这些步骤创建了一个单独的项目 其中包含类似于 APPRTC 的说明和代码 并且我能够让它工作 我能够在两台设备之间进行会议 但是当我尝试与旧项目集成时 Webrtc 崩溃了
  • 在 Heroku 上部署 PeerJS 服务器

    我的 PeerJS 服务器有问题 我从这里使用了 部署到 Heroku 按钮 https github com peers peerjs server https github com peers peerjs server 我不知道如何连
  • 为Windows应用程序实现webrtc数据通道[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有谁知道如何向用 C 构建的 Windows 应用程序实现 WebRTC DataChannel API 以便在 NAT 后面的客户端
  • 独立移动应用程序上的 WebRTC

    我知道WebRTC是为浏览器设计的 但是可以直接在移动应用程序上使用WebRTC库吗 Thanks 截至5月14日here https github com pchab AndroidRTC是一个android项目 使用WebRTC效果很好
  • 使用 Docker 的 mediasoup v3

    我正在尝试运行一个2docker 中的 WebRTC 示例 使用 mediasoup 当我在一组实例上进行视频通话时 我想运行两台服务器 我的错误 你有没有看到这个错误 createProducerTransport null 错误 由于地
  • WebRTC 和 Asp.Net Core

    我想将音频流从我的 Angular Web 应用程序录制到我的 Asp net Core Api 我认为 使用 SignalR 及其 websockets 是实现这一目标的好方法 通过这个打字稿代码 我可以获得一个 MediaStream
  • 如何将音频从浏览器流式传输到 WebRTC 本机 C++ 应用程序

    到目前为止 我已成功运行以下示例 WebRTC 原生 C 到浏览器视频流示例 http sourcey com webrtc native to browser video streaming example 该示例展示了如何将视频从本机
  • WebRTC 暂停和恢复流

    我正在尝试使用 WebRTC 构建一个 Web 应用程序 当某些事件触发时需要暂停 恢复视频 音频流 我已经尝试过getTracks 0 stop 但我不知道如何恢复流 对此有什么建议吗 谢谢 getTracks 0 stop 是永久的 U
  • 如何在 Android webRTC 上启用 H264

    如何在 Android WebRTC 上启用 H264 PeerConnection to createOfferSDP中没有h264描述 由于某种原因 Google 默认会阻止他们自己的软件编解码器 因此 如果您的芯片组中没有硬件解码 或
  • MediaStream 未处理的承诺拒绝:[object DOMError](在 Safari 11 中)

    在下面初始化 WebRTC 的方法中 我在 Safari Tech Preview 11 中遇到了未处理的承诺拒绝 具体来说 当我分配MediaStream像这样的视频元素 video srcObject event stream 堆栈跟踪

随机推荐

  • Gatsby 与 PostCSS 8 - 尝试导入错误:“component.module.css”不包含默认导出(作为“样式”导入)

    我有一个基于入门项目的 Gatsby and Sanity 网站 到目前为止 一切都很顺利 但我今天在 package json 文件中更新了所有软件包和插件 以消除所有 npm 警告 这包括更新到 Gatsby 3 0 3 和 PostC
  • 获取给定 AnyObject 的唯一字符串?

    在 Objective C 中 这很简单 NSString stringWithFormat p objRef 我怎样才能在斯威夫特做到这一点 func hashString obj AnyObject gt String return S
  • 用于确定 n 是否完全平方的 O(log log n) 算法

    是否有已发布的 O log b 算法来确定 b 位数字是否为整数的平方 如果这个问题超出了本网站的范围 我深表歉意 如果是的话 我很乐意检索它 更新 我意识到我提出的问题是不合理的 因此 让我通过询问 b 中的次多项式运算的任何算法来修改它
  • 如何在 Material-UI 中插入新行?

    我正在开发一个联系人应用程序 其中所有数据都临时存储在客户端 我使用了 Material ui 表来显示联系人 当单击右下角的 添加新联系人 按钮时 它会显示一个带有表单的对话框 单击 保存 按钮时 数据将保存在该状态中 但我面临的问题是如
  • primeng 下拉组件错误(“p-dropdown”不是已知元素)

    遵循指南 https www primefaces org primeng https www primefaces org primeng 我尝试按照上面详述的步骤安装 PrimeNG 以与 Angular4 一起使用 但出现错误 p d
  • Jquery + Rails 有问题,是真的吗?

    我在上一个问题中看到评论说最好将 Prototype 与 Rails 一起使用 然而 我自己的经验是 Jquery 是一个优秀的 Javascript 库 作为 Rails 的新手 我还没有研究如何将 Jquery 与 Rails 一起使用
  • 在新订单电子邮件通知中显示客户 IP 地址

    创建新订单时 woocommerce 将向管理员发送一封电子邮件 我希望它也在电子邮件中发送客户的 IP 地址 但我无法让它工作 这是我到目前为止得到的 这段代码进入mytheme woocommerce emails admin new
  • Installshield主要升级不会卸载旧版本

    我有一个 Installshield 项目 我添加了一个主要的升级项目并进行了更改Product version Product code and Package code 使用新安装程序安装后 旧版本仍然存在 在Add Remove 我认
  • Python Dataframes 未合并索引

    我正在尝试合并 2 个数据帧 但由于某种原因它抛出KeyError Player Id 我正在尝试合并Striker Id and Player Id 这就是我的数据框的样子 合并代码 player runs merge matches p
  • nginx 反向代理导致 POST 请求正文丢失

    我使用 nginx 作为 http 服务的反向代理 使用如下配置 location jobexecutor proxy pass http jobexecutor 8080 jobexecutor proxy set header Host
  • 使用 rspec 测试设备视图

    我已经生成了 Devise 的视图运行rails g devise views现在想测试它们 这就是我想出的 require spec helper describe devise sessions new do before do ren
  • 如何在运行时复制Python模块?

    我需要制作一个套接字模块的副本才能使用它 并再对一个套接字模块进行猴子修补并以不同的方式使用它 这可能吗 我的意思是真正复制一个模块 即得到相同的结果runtime就好像我复制了一样socketmodule c 改变了initsocket
  • 在第一个匹配处停止的正则表达式

    我的正则表达式模式看起来像
  • Magento 1.9 中的简单主页特色产品列表

    我试图实现一个简单的产品列表以显示在主页上 但我在网上找到的每个解决方案在我的设置中都失败了 Magento 1 9 0 1 似乎大多数文章只与以前的版本相关 有人找到了这个问题的解决方案吗 block type catalog produ
  • 在 C# 中地理定位 IP 地址

    我正在用 C 开发一个 Windows 8 应用程序 并想要获取IP地址的地理坐标 或者 想要一个能够在 Windows 8 应用程序中精确或接近地理定位 IP 地址的 API 在此先感谢您的帮助 只需使用这里的 Web 服务 每小时 10
  • 我怎样才能保证 Thread.sleep 至少休眠那么多时间?

    As per 这个问题 https stackoverflow com q 45419940 1898563 Thread sleep不一定保证在您指定的时间内睡眠 它可能会更短or longer 如果您阅读了文档Thread sleep
  • 页面刷新时继续隐藏 HTML 输入字段?

    HTML 页面上有一个过滤器部分 其中包含各种下拉列表和文本框 当选择 type of report 下拉列表时 onchange 事件将隐藏该 type of report 的所有不相关输入 过滤条件通过 GET 保存 我通过 PHP G
  • bash:将变量注入字符串会添加额外的 \r

    我有一个使用curl 将文件发送到我们的第三方云文件存储的脚本 我正在使用 grep 提取 http 响应中提供给我的 URL 看起来像这样 curl X PUT T media file tar gz D H ETag md5 H Con
  • Android 以编程方式向 Webview 添加边距

    我需要以编程方式向网络视图添加边距 我想做如下的事情 public void setSideMargin final int sideMargin int id WebView webView WebView Activity contex
  • 如何使用webrtc录制视频

    我需要在使用 Nodejs 构建的网站上使用笔记本电脑摄像头录制视频 为此 我使用 webRTC 到目前为止 我可以使用笔记本电脑摄像头拍照 但我需要录制视频 有人可以帮忙解释一下代码将如何进行吗 我当前的代码如下