javascript - 我们可以将多个 html5 <video> 流合并到一个 .mp4 文件中吗?

标签 javascript html socket.io webrtc

我有两个视频,一个用于流式传输我的网络摄像头,另一个用于共享我的桌面屏幕/窗口。我需要将这两个媒体流合并为一个,以便我可以将其另存为 .mp4 文件并通过 WebRTC 进行广播。 p>

最佳答案

我能够通过将两个 VIDEO(流)标签绑定(bind)到 DIV 标签中来组合它们。

       <div id="elementToShare">
         <video id="webcamVideo" controls loop autoplay class="webcam">No Support.</video>
         <video id="screenshareVideo" controls loop autoplay class="screenshare">No Support.</video>
       </div>

然后,我使用 DIV 标签作为 Canvas ,使用 RecordRTC 将两个视频录制为一个视频。图书馆 Muaz Khan .

   var elementToShare = document.getElementById('elementToShare');
   var canvasRecorder = RecordRTC(elementToShare,{
      type : 'canvas',
      recorderType: CanvasRecorder
   }); 

但是这种方法的问题是,我无法使用我使用的 Canvas 记录来自网络摄像头的音频流 ffmpeg_asm.js 。由于 js 文件的大小为 18mb,因此需要花费大量时间来加载和处理视频文件。

据我所知,WebRTC 仍处于初级阶段,我希望能够出现一些有效的东西来实现这些目标。

注意:我只能在 Google Chrome 中实现上述功能,因为现阶段 Mozilla Firefox 提供的支持有限。而Safari没有提供WebRTC support所以从一开始就不存在。

编辑1:使用Node.js作为服务器支持来为上述应用程序提供服务,提高了性能和视频处理能力。例如:如果没有 Node.js,ffmpeg_asm.js 无法处理大于 2200k 的视频比特率。

关于javascript - 我们可以将多个 html5 <video> 流合并到一个 .mp4 文件中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37404860/

相关文章:

javascript - 如何仅向环回 API socket.io 中连接的套接字(客户端)发送数据

node.js - 使用 redis pubsub 和 socket.io 的关注者状态更新通知

javascript - 如何使用 jQuery 打开一个新的 HTML 页面?

javascript - 指定在检查 Google Recaptcha 时要执行的某些函数,因为我不是使用 javascript 的机器人

javascript - 如何相对于其兄弟 flex 盒的宽度调整子 flex 盒的宽度

javascript - 动态加载 Javascript HTML CSS 与页面重定向

javascript - AuthorizedHandler 阻止了错误的请求!网址 :/socket. io/

javascript - 如何让facebook像私有(private)消息一样

javascript - JQUERY模态框确认表单提交

html - 我的页面向右滚动。为什么会这样?