首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WebRTC -- getUserMedia可以使用本地流吗?

WebRTC -- getUserMedia可以使用本地流吗?
EN

Stack Overflow用户
提问于 2015-01-14 07:08:12
回答 3查看 2.5K关注 0票数 1

我想让WebRTC编码并播放h264(NAL)流(本地文件)。在WebRTC教程中,getUserMedia用于获取本地摄像机连接到系统,我不知道getUserMedia函数是否支持捕获本地流文件,如h264流。

如果它不能这样工作,也许我应该修改WebRTC源代码(我正在研究)。问题是,如果我更改WebRTC代码,如何将新代码集成到浏览器中?把它变成插件了?

EN

回答 3

Stack Overflow用户

发布于 2015-01-28 06:19:21

火狐支持对<video>元素的扩展,您可以使用它来完成这个任务。

首先,设置视频元素的源:

代码语言:javascript
运行
复制
v1.src = "file:///...";

然后,您可以调用(当前为前缀的) mozCaptureStreammozCaptureStreamUntilEnded函数来获得MediaStream

代码语言:javascript
运行
复制
stream = v1.mozCaptureStream();

拟议规格

但是,请注意,您需要确保该文件与页面的来源相同。file:///的相同原产地规则可能会引起问题。否则,您的MediaStream将无法访问您。确保这一点的一种方法不是直接设置位置,而是使用<input type="file">元素加载文件。

正如其他答案所指出的,Firefox目前只支持H.264的基线配置文件。

票数 2
EN

Stack Overflow用户

发布于 2015-01-14 14:37:12

首先,你是对的,getusermedia不会为你工作。然而,有几种选择。

  1. 使用RTCDataChannel一起攻击流。分解媒体流并传送每个数据包,然后在客户端处理它。
  2. 看一下这个演示用于预先录制的媒体流。我不相信H264是被解决的,但它可以帮助您在路上(可能只对火狐)
  3. 使用某种类型的webrtc断路器/端点,它是本机用于流文件的。我特别知道其他人(包括我自己)已经将H264通过Janus-网关流到火狐上。

几个旁人:

  • 火狐只支持流h264中用于webrtc对等连接的基线配置文件
  • Chrome根本不支持webrtc的h264
票数 0
EN

Stack Overflow用户

发布于 2015-01-15 06:23:01

您是否试图让getUserMedia返回h.264编码流?

  • 在这种情况下,今天只能使用Firefox,在特定的环境下(安装了cisco 264插件),并且只用于基本配置文件。
  • Chrome在去年11月承诺增加这方面的容量,但据我所知,至少Q2 2015年还没有时间表。
  • 使用我们的(临时工)商业插件,您很快就可以在IE和Safari中做到这一点。

这是我能想到的客户端的唯一选择。在服务器端,您可以使用任何您想要的代码,包括janus,kurento,powermedia,licode/lynkia,.

注意:使用其他方法(如Datachannel或WebSocket )可以传输文件,但会大大减少用户体验,因为SRTP、DTLS中不包含所有附加的恢复(和安全)机制,也不会有webRTC中特定的不正确的媒体增强,如抖动、缓冲区、netQ等.

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

https://stackoverflow.com/questions/27937513

复制
相关文章

相似问题

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