问题 Navigator.MediaDevices.getUserMedia()使用了哪些相机通信标准?


有谁知道用于检测相机硬件的通信标准是否与getUserMedia一起使用?

我认为它是MTP或类似的东西,虽然我希望每个浏览器/操作系统的实现都不同,但我已经搜索了两天,我找不到任何有关此问题的可靠信息。


9978
2017-07-17 09:01


起源

如果您只谈论硬件检测协议,那么我认为您是对的。每个浏览器使用特定操作系统中定义的方法访问相机硬件。但是,如果您正在寻找使用的媒体传输协议 WebRTC 那么你可以通过 innoarchitech.com/what-is-webrtc-and-how-does-it-work, w3.org/TR/webrtc。 - Sandip Nirmal


答案:


我很长时间都在寻找你问题的答案。起初我发现了这个 w3.org WebRTC网站

该文档在WebIDL中定义了一组ECMAScript API,以允许向另一个实现适当的实时协议的浏览器或设备发送和接收媒体。该规范正在与a一起开发 由IETF RTCWEB小组开发的协议规范 和 获取访问权限的API规范 本地媒体设备 由媒体捕获工作组开发

然后在网站上 “媒体运输和使用RTP” 我发现以下信息:

5.2.4。媒体流识别:

WebRTC端点实现SDP捆绑协商扩展   将使用SDP分组框架'mid'属性来识别媒体   流。这些端点必须实现RTP MID头扩展   在[I-D.ietf-mmusic-sdp-bundle-negotiation]中描述。

此标头扩展使用[RFC5285]通用标头扩展   框架,因此需要在可以使用之前进行协商。

12.2.1。媒体来源识别:

每个RTP分组流由唯一同步标识   源(SSRC)标识符。 SSRC标识符分别在每个中携带   RTP分组包括RTP分组流,也用于   在相应的RTCP报告中识别该流。 SSRC是   如第4.8节所述选择。解复用的第一个阶段   在单个传输层上接收的RTP和RTCP分组流在a处   WebRTC端点是根据它们分离RTP数据包流   SSRC价值;一旦完成,其他多路分解步骤即可   确定如何以及在何处呈现媒体。

RTP允许混合器或其他RTP层中间盒组合编码   来自多个媒体源的流以形成新的编码流   一个新的媒体源(混音器)。新RTP中的RTP数据包   数据包流可以包括贡献源(CSRC)列表,   指示哪些原始SSRCs对组合来源的贡献   流。

如4.1节所述,实现需要支持接收   包含CSRC列表和RTCP数据包的RTP数据包   涉及中国证监会名单上的来源。中国证监会的名单可以改变   逐个数据包,取决于混合操作   执行。

了解媒体资源对特定RTP数据包的贡献   如果用户界面指示哪些参与者,则可能很重要   在会议中活跃。中国证监会名单的变更包括在内   数据包需要使用某些API公开给WebRTC应用程序,   如果应用程序能够跟踪会话中的更改   参与。希望将CSRC值映射回WebRTC   MediaStream身份,因为他们跨越这个API,以避免暴露   SSRC / CSRC为WebRTC应用程序命名空间。

如果正在使用混音器到客户端音频级别扩展[RFC6465]   在会议中(参见第5.2.3节),CSRC列表中的信息   通过每个贡献源的音频级别信息来增强。   希望将此信息公开给WebRTC应用程序   在将CSRC值映射到WebRTC MediaStream之后使用某些API   身份,因此它可以在用户界面中公开。

珀金斯等人。 2016年9月18日到期[第35页]

WebRTC的互联网草案RTP 2016年3月

WebRTC的所有传输都列在 这个网站

您可以在现场找到IETF RTCWEB组的所有文件 “WEB浏览器中的实时通信(rtcweb)”


了解更多信息:


我的结论:

  1. 会话描述协议(SDP)
  2. 实时传输协议(RTP)(可能也是)

7
2017-07-31 20:33





webrtc.org库有一组可以找到的特定于平台的粘合模块 这里 而且在 Chrome树。 在Windows上,它使用MediaFoundation API(具有回退到DirectShow),Linux上的video4linux和Mac上的AVFoundation


3
2017-08-01 04:45