标签: webrtc

使用WebRTC在浏览器之间传输JSON

我最初听说WebRTC的前景令我很兴奋.它听起来像websockets但没有服务器.不幸的是,我能找到的所有教程都强调了WebRTC的视频和音频方面.我找不到任何关于在浏览器之间发送文本/数据/ JSON的信息.你能帮我写一个简单的hello世界,只需用WebbRTC从一个浏览器发送一些数据到另一个浏览器吗?

javascript webrtc

15
推荐指数
2
解决办法
8110
查看次数

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

停止getUserMedia的网络摄像头流媒体,无需刷新页面

我试图用javascript函数关闭网络摄像头(它必须在收到一些Ajax响应后关闭),但似乎无法关闭而不刷新页面.关闭它的所有方法,如video.src = null,video.pause ...等在任何浏览器中根本不起作用.唯一的方法是关闭在成功函数上作为参数传递的流,所以有什么方法可以在函数成功之外使用这个对象来关闭网络摄像头?

我知道之前已经问过这个问题(使用getUserMedia和RTCPeerConnection Chrome 25停止/关闭网络摄像头),但我的需求不同,所以我需要一些帮助来解决这个问题

谢谢!

编辑:我的工作代码试图关闭网络摄像头:

navigator.getUserMedia = navigator.getUserMedia || navigator.mozGetUserMedia ||  navigator.webkitGetUserMedia || navigator.msGetUserMedia;
if(navigator.getUserMedia){
  var video_constraints = {
    mandatory: {
       maxHeight: 480,
       maxWidth: 640 
    },
    optional: []
  };
  var self = this;
  self.navigator.getUserMedia({
      audio: false,
      video: video_constraints
  }, self.onSuccess, onError);
}
else{
  alert('An error has occurred starting the webcam stream, please revise the instructions to fix the problem');
}

function onSuccess(stream) {
  var video = document.getElementById('webcam');

  if(navigator.webkitGetUserMedia || navigator.mozGetUserMedia){
      video.src = window.URL.createObjectURL(stream);
  } …
Run Code Online (Sandbox Code Playgroud)

javascript webrtc getusermedia

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

WebRTC - 如何静音本地音频输出

我试图仅在WebRTC中静音本地音频,更具体地说是在getUserMedia()之后和任何服务器连接之前.我发现的任何选项都没有; Muaz Khan的这个失败了:

var audioTracks = localMediaStream.getAudioTracks();
// if MediaStream has reference to microphone
if (audioTracks[0]) {
    audioTracks[0].enabled = false;
}
Run Code Online (Sandbox Code Playgroud)

资源

此技术在此处也称为"工作",但在Chrome版本39.0.2171.95(64位)(Ubuntu 14.04)上失败.

据说通过使用音量增益工作的其他方法:

window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
var source = audioContext.createMediaStreamSource(clientStream);
var volume = audioContext.createGain();
source.connect(volume);
volume.connect(audioContext.destination);
volume.gain.value = 0;  //turn off the speakers
Run Code Online (Sandbox Code Playgroud)

tl; dr我不想听到扬声器上麦克风的输入,但我确实希望看到我的视频图像.

解决方法

Benjamin Trent建议这种解决方法,它通过在视频标签上设置静音属性来静音音频,如下所示:

document.getElementById("html5vid").muted = true;
Run Code Online (Sandbox Code Playgroud)

也有类似的问题,但它的视频,所以不一样

javascript webrtc

15
推荐指数
1
解决办法
7020
查看次数

WebRTC在本地网络上?

我一直在阅读有关WebRTC的内容,看起来非常有前景.我想制作一个简单的局域网游戏,自动连接同一网络上的人.虽然我可以找到人们询问类似的东西,并且答案告诉他们这是可能的,但我找不到任何关于如何做到的明确教程.

然而,我对WebRTC和Web编程一般都很陌生.所以也许我只是不知道要搜索什么.

那么,如何在本地网络上自动连接使用WebRTC的人,而无需任何人运行单独的服务器或连接到互联网?他们应该能够在他们的计算机上打开一个html文件,并连接到在同一网络上执行该操作的其他人,即使没有互联网.

谢谢!

webrtc

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

Android上的WebRTC

我想在Titanium上使用WebRTC.去年年底,WebRTC在Chrome for Android上实施.我想在Android上使用WebRTC进行应用程序.

我有几个问题:

  1. 是否可以在原生webview上使用WebRTC,或者仅用于chrome?
  2. 在Android上实施webRTC最简单的方法是什么?

在一个独立的移动应用程序上找到了关于webRTC移动webRTC的旧文章,但它已经过时了,现在的情况如何变化?

android webrtc

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

使用带有webRTC的IP摄像头

我想使用带有webrtc的IP摄像头.然而,webrtc似乎只支持网络摄像头.所以我尝试将IP摄像机的流转换为虚拟网络摄像头.

我找到了像IP Camera Adapter这样的软件,但它们不能正常工作(每秒2-3帧,延迟2秒),而且它们只适用于Windows,我更喜欢使用Linux(如果可能的话).

我尝试ffmpeg/avconv:

  • 首先,我用v4l2loopback创建了一个虚拟设备(命令是:)sudo modprobe v4l2loopback.检测到虚拟设备,可以使用以下命令通过视频(.avi)提供虚拟设备: ffmpeg -re -i testsrc.avi -f v4l2 /dev/video1

  • 来自IP摄像机的流可用于:rtsp://IP/play2.sdp用于Dlink DCS-5222L摄像机.ffmpeg可以捕获此流.

我的问题是在这两个步骤之间建立链接(接收rstp流并将其写入虚拟网络摄像头).我试过ffmpeg -re -i rtsp://192.168.1.16/play2.sdp -f video4linux2 -input_format mjpeg -i /dev/video0但是v4l2有错误(找不到v4l2).

有人知道如何使用带有webRTC的IP摄像头吗?

linux ffmpeg ip-camera webrtc

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

有人可以全面解释WebRTC统计API吗?

我正在为视频通信的研究生课程完成WebRTC项目,它本质上是一个视频会议聊天室.连接到服务器的每个人都会添加到会议中.

我需要使用WebRTC中的stats API来显示每个RTCPeerConnection的一些相关性能统计信息(每秒丢失的数据包,抖动,重传等).这有助于观察性能成本,因为更多对等体被添加到对话中.

然而,API似乎还没有完全充实.它显然经历了一些刷新并且与我见过的一些W3C规格不太匹配(虽然它可能已经过时或者我只是不理解读取规范的细微差别,也不会让我感到惊讶).

我对API的调用与此类似,但解释数据并不简单.例如,当循环遍历所有项目时RTCStatsReport::results(),其中许多项目具有重复的名称和令人困惑的值.我似乎无法找到任何有关其含义的信息.如果有人能帮助我理解一些重要的东西或者指出我失去的黄金之城(例如适当的文件),我将不胜感激.

javascript webrtc

14
推荐指数
1
解决办法
6021
查看次数

快速块传输时,PeerJS/WebRTC连接失败

我正在使用PeerJS,但认为这个问题WebRTC一般都可以,希望你能帮助我:

我正在尝试编写一个简单的点对点文件共享.我使用serialisation: "none"PeerJS连接DataChannel,因为我只发送纯ArrayBuffers.
对于10mb左右的文件,一切都很好但是我在发送更大的文件(30+ mb)时遇到问题,例如在发送10-20个第一块900mb zip文件连接之后,在同行之间开始投掷Connection is not open. You should listen for the "open" event before sending messages.(Sender旁边)

我的设置:

文件被拖动拖放,Sender用于FileReaderArrayBuffer64x1024字节(与16x1024没有区别)的块读取它,并且一读取每个块 - 它通过peer.send(ChunkArrayBuffer)发送.

Recieverblob从每个接收到的块创建,在传输完成后创建完整blob的那些并给出用户的链接.

我的对等连接设置:

   var con = peer.connect(peerid, {
        label: "file",
        reliable: true,
       serialization: "none"
   })
Run Code Online (Sandbox Code Playgroud)

我的发送功能:

function sliceandsend(file, sendfunction) {
    var fileSize = file.size;
    var name = file.name;
    var mime = file.type; …
Run Code Online (Sandbox Code Playgroud)

javascript file-sharing chunks webrtc peerjs

14
推荐指数
1
解决办法
1047
查看次数

无法在Ubuntu Linux 16.04中安装kurento-media-server-6.0

无法在Ubuntu Linux 16.04中安装kurento-media-server-6.0,它总是显示依赖性问题,如下所示.

sudo apt-get install kurento-media-server-6.0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:

 kurento-media-server-6.0 : Depends: kms-core-6.0 (>= 6.6.1) but it …
Run Code Online (Sandbox Code Playgroud)

ubuntu webrtc kurento

14
推荐指数
1
解决办法
6616
查看次数