标签: webrtc

WebRTC是否适用于phonegap/Cordova?

编辑:改述我的问题和标题

因此,如果您从标题中可以看出我正在使用Phonegap/Cordova并尝试将WebRTC添加到HTML/JS/CSS应用程序中.完美适用于桌面浏览器,但不适用于移动设备.

我问这个问题的原因是因为我在手机上看过视频聊天应用程序(oovoo/skype),但浏览器中没有聊天应用程序.虽然我知道webrtc不适用于IOS,但确实适用于较新版本的Chrome.

但是,如果我将我的应用程序包装在Cordova/Phonegap webview中并将其作为应用程序分发,是否可以运行WebRTC?因为如果我可以使用PhoneGap访问相机或accelorometer等本机组件,为什么我不能使用HTML/JS/CSS应用程序进行视频聊天?

有没人试过这个?

TIA.

javascript node.js webrtc cordova

18
推荐指数
1
解决办法
8135
查看次数

在webrtc视频聊天中检测到对等方的浏览器已关闭

我一直在实施webrtc视频聊天.

除了对等关闭浏览器的情况外,一切都顺利进行.

我一直试图通过在远程媒体流上实现一个关于回调的回调来处理这个事件.但是,这个回调似乎从未被调用过.

如何检测对等方的浏览器已关闭或另一方已完成连接?

javascript html5 video-streaming html5-video webrtc

18
推荐指数
2
解决办法
7629
查看次数

当我有一个基于socket.io的信令服务器时,是否对于webrtc绝对需要STUN服务器?

我对webrtc的STUN服务器的理解是,当客户端在NAT后面时(在大多数情况下,如果不是全部),STUN服务器将帮助webrtc客户端识别他们的地址和端口.我还读到一些文章说webrtc客户端需要一个信令服务器.信令服务器可以是web服务器,socket.io,甚至是通过电子邮件发送网址.我的第一个问题是:STUN服务器是信令服务器吗?

实际上现在我构建了一个非常简单的基于socket.io的服务,它将客户端的会话描述广播给所有其他客户端.所以我相信基于socket.io的服务器应该对客户端的地址和端口信息有足够的了解.如果是这种情况,为什么我们还要打扰另一台STUN服务器呢?

stun webrtc

18
推荐指数
2
解决办法
1万
查看次数

为什么不"onicecandidate"工作?

我无法通过它的PeerConnection和'onicecandidate'事件了解webRTC.

据我所知,您必须使用STUN(或TURN)服务器启动对等连接,因为它会将您的ICE候选者发送给您,以便与另一个对等方进行通信.

我已经看到了将PeerConnection对象的服务器参数留下的示例,我也不明白,但我们只是说它需要服务器参数.

所以,当我写下以下代码时:

    var pc, ice = { "iceServers": [{ "url": "stun:stun.l.google.com:19302" }] };
if(typeof mozRTCPeerConnection === 'function') {

    pc = new mozRTCPeerConnection(ice);
}
else {
    console.log('google');
    pc = new webkitRTCPeerConnection(ice);
}


pc.onicecandidate  = function(event) { 
    console.log(event);
}
Run Code Online (Sandbox Code Playgroud)

我希望'onicecandidate'事件会触发,但它不起作用.我也尝试过其他公共STUN服务器,但没有任何反应.所以我认为我的理解可能有问题:)

javascript stun webrtc

17
推荐指数
1
解决办法
1万
查看次数

如何在WebRTC视频通话中控制带宽?

我正在尝试使用WebRTC和node.js开发视频呼叫/会议应用程序.目前,在视频通话期间无法控制带宽.有没有办法控制/减少带宽.(就像我想让整个我的Web应用程序在视频会议上以150 kbps的速度工作).

任何建议都非常感谢.提前致谢.

javascript node.js webrtc

17
推荐指数
3
解决办法
2万
查看次数

什么是STUN stun.l.google.com:19302用于

我正在查看webrtc.htmlpeerconnection_server演示,它在两个Chrome浏览器之间正常工作.我的问题是,webkitPeerConnection的第一个参数究竟是什么?

pc = new webkitPeerConnection("STUN stun.l.google.com:19302", onSignalingMessage);
Run Code Online (Sandbox Code Playgroud)

它是Google为演示目的而提供的第三方STUN服务器吗?如果在我的JavaScript代码中,我替换"stun.l.google.com:19302""toto",我仍然可以进行视频通话.但是当我在同一个子网上时,这可以解释......

stun node.js webrtc

17
推荐指数
2
解决办法
3万
查看次数

WEBRTC STUN stun.l.google.com:19302

我刚刚下载了一个视频聊天项目.它使用STUN服务器并指定URL stun:23.21.150.121.如何使用自己的服务器而不是STUN服务器?我需要输入什么而不是此URL?

stun node.js webrtc

17
推荐指数
3
解决办法
4万
查看次数

使用本地服务器的ApprtcDemo可以在浏览器之间工作,但不适用于浏览器本机

我正在开发一个聊天应用程序并完成它.现在我也想实现视频聊天.经过研究很多,我决定选择"WebRTC"库.

我做了什么?

1)能够在本地服务器上运行AppRtcDemo,并且它在浏览器之间正常工作.

参考:http://www.webrtc.org/reference/getting-started

2)能够构建Android AppRtcDemo.But当我运行时说"Cross origin not support".

经过研究,我在webrtc讨论中发现,为了解决这个问题,我需要设置自己的转向服务器.

3)所以我安装了webrtc推荐的最新rfc5766TurnServer.我成功运行了转向服务器.

参考:http://code.google.com/p/rfc5766-turn-server/

我对ApprtcDemo(web)和(Android)进行了以下更改,以便与我的Turn服务器一起使用

1)apprtc.py

更换:

turn_url = 'https://computeengineondemand.appspot.com/'
turn_url = turn_url + 'turn?' + 'username=' + user + '&key=4080218913'
Run Code Online (Sandbox Code Playgroud)

指向我的转弯服务器:

turn_url = 'http://192.168.5.85:3478/?service=turn&username=biraj'
Run Code Online (Sandbox Code Playgroud)

2)index.html

更换:

var pcConfig = {{ pc_config|safe }};
Run Code Online (Sandbox Code Playgroud)

附:

var pcConfig = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},            {"url":"turn:biraj@192.168.5.85:3479", "credential":"0x5b04123c3eec4cf0be64ab909bb2ff5b"}]};
Run Code Online (Sandbox Code Playgroud)

Android的

1)AppRTCDemoActivity.java

更换:

roomInput.setText("https://apprtc.appspot.com/?r=");
Run Code Online (Sandbox Code Playgroud)

使用我的本地apprtc服务器:

roomInput.setText("http://192.168.5.86:8080/?r=");
Run Code Online (Sandbox Code Playgroud)

2)AppRTCClient.java

private PeerConnection.IceServer requestTurnServer(String url){}功能上

更换:

connection.addRequestProperty("origin", "https://apprtc.appspot.com");
Run Code Online (Sandbox Code Playgroud)

附:

connection.addRequestProperty("origin", "http://192.168.5.86:8080");
Run Code Online (Sandbox Code Playgroud)

3)/assets/channel.html

更换:

<script src="https://apprtc.appspot.com/_ah/channel/jsapi"></script>
Run Code Online (Sandbox Code Playgroud)

附: …

android webrtc apprtcdemo rfc5766turnserver

17
推荐指数
1
解决办法
8400
查看次数

使用WebRTC将数据与视频同步

我正在使用WebRTC从服务器向客户端浏览器发送视频(使用本机WebRTC APIMCU WebRTC像Kurento这样的服务器).

在将其发送给客户端之前,视频的每个帧都包含元数据(如字幕或任何其他应用内容).我正在寻找一种方法将这些元数据发送到客户端,使其保持同步(到实际呈现的时间).此外,我希望能够从客户端(通过Javascript)访问此数据.

我想到的一些选项:

  • 通过WebRTC DataChannel发送数据.但我不知道如何确保数据在每帧的基础上同步.但是我找不到一种方法来确保数据通道和视频通道发送的数据是同步的(再次,我希望获得单帧的精确级别).
  • 以某种方式手动将数据发送到客户端(WebRTC DataChannel,websockets等),其时间戳与视频的时间戳匹配.但是,即使Kurento或其他中间服务器保留视频中的时间戳信息,根据以下答案,没有应用方法从javascript获取视频时间戳: 如何使用webRTC Javascript API访问传出音频RTP时间戳在发送方和接收方的传入音频RTP时间戳?.我想过使用标准视频元素的timeupdate事件,但我不知道它是否适用于帧的精确级别,我不确定它在实时视频中的含义与WebRTC中的相同.
  • 手动发送数据并将其作为另一个应用程序附加到视频TextTrack.然后使用onenteronexit同步读取它:http://www.html5rocks.com/en/tutorials/track/basics/.它仍然需要精确的时间戳,我不知道如何知道什么是时间戳,以及Kurento是否按原样传递它们.
  • 使用WebRTC的统计API手动计算帧数(使用getstats),并希望此API提供的信息是准确的.

最好的方法是什么,以及如何解决我提到的问题?

编辑:需要具有适当帧的元数据的精确同步(在不超过单帧的分辨率下).

javascript video html5 video-streaming webrtc

17
推荐指数
1
解决办法
4315
查看次数

Jitsi Videobridge谈判

我正在尝试将Jitsi Videobridge集成到我现有的WebRTC应用程序中.

现在信号是相对简单的,提供,答案,候选人,我们正在运行.

我找不到关于如何集成像Jitsi这样的选择性转发解决方案的简单文档或教程,一切似乎都说得太高了(见这里).

有人可以具体地向我解释提供,答案,候选模型如何与Jitsi一起改变,我怎样才能通过视频桥建立一对一的呼叫?

我目前的分析,我认为我应该打Jitsi通过REST接口来获得候选人和换出host,srvflx以及relay从视频桥的那些候选人我产生当前.这甚至是在正确的轨道上?

rest webrtc jitsi

17
推荐指数
0
解决办法
978
查看次数