首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以通过Web RTC将视频从一个客户端传输到另一个客户端?

问是否可以通过Web RTC将视频从一个客户端传输到另一个客户端?
EN

Stack Overflow用户
提问于 2015-08-01 15:48:16
回答 2查看 391关注 0票数 1

我知道我可以使用WebRTC在用户之间从摄像头中流式传输视频,但是虽然Node.js具有以流的形式读取视频的功能,允许流式传输大文件,甚至几个小时长的视频(一个人不能在Node.js上一次读取非常大的视频),但我不确定基于浏览器的JS是否有工具将用户选择的视频读取为流格式用于WebRTC。

这可以做到吗?

EN

回答 2

Stack Overflow用户

发布于 2015-08-01 16:02:27

如果您希望能够在JS中处理mp4,请看一下:

http://download.tsi.telecom-paristech.fr/gpac/mp4box.js/

票数 0
EN

Stack Overflow用户

发布于 2015-08-02 07:49:13

是的,这可以在火狐中使用FileReader和HTMLMediaElement.captureStream()来完成

​

代码语言:javascript
复制
browse.onchange = e => {
  var reader = new FileReader();
  reader.readAsDataURL(browse.files[0]);
  reader.onloadend = e => v1.src = reader.result;
};

var pc1 = new mozRTCPeerConnection(), pc2 = new mozRTCPeerConnection();
var add = (p, can) => can && p.addIceCandidate(can).catch(failed);

pc1.onicecandidate = e => add(pc2, e.candidate);
pc2.onicecandidate = e => add(pc1, e.candidate);
pc2.onaddstream = e => v2.mozSrcObject = e.stream;

function send() {
  pc1.addStream(v1.mozCaptureStreamUntilEnded());
  pc1.createOffer()
  .then(offer => pc1.setLocalDescription(offer))
  .then(() => pc2.setRemoteDescription(pc1.localDescription))
  .then(() => pc2.createAnswer())
  .then(answer => pc2.setLocalDescription(answer))
  .then(() => pc1.setRemoteDescription(pc2.localDescription))
  .then(() => log("Connected!"))
  .catch(failed);
}

var log = msg => div.innerHTML += "<p>" + msg + "</p>";
var failed = e => log(e +", line "+ e.lineNumber);
代码语言:javascript
复制
<video id="v1" height="90" width="160" autoplay></video>
<video id="v2" height="90" width="160" autoplay></video><br>
<input type="file" id="browse" accept="video/*"></input>
<button onclick="send()">Send!</button><div id="div"></div>

​

尝试将this video file保存到您的磁盘中。

这是一个标准跟踪实验特性。如果你喜欢它,可以向你最喜欢的浏览器供应商要!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31759565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档