我了解了web-rtc,它说你可以捕获视频摄像头,我使用了演示,这只适用于镀铬..
当我在firefox上打开它"getUserMedia() not supported in your browser."
时,当我打开这个HTML5-rocks-demo时,我会在另一只手上收到消息
它100%工作.什么改变或插件或我想念的东西让我的getusermedia()工作.
我遇到的麻烦NAT traversal和WebRTC.视频流可以与某些人合作,但与在学生宿舍路由器后面的人不同.
我认为这应该通过使用TURN服务器来解决.我已经这样做了,它仍然无法工作,现在我想知道TURN服务器是否正常工作.因此,我想知道我是否可以或应该设置多个TURN服务器,如果是,如何.
我在另一个线程中找到了这个STUN/TURN服务器列表.现在我正在设置它们
var STUN = {
'url': 'stun:stun.l.google.com:19302',
};
var TURN = {
url: 'turn:homeo@turn.bistri.com:80',
credential: 'homeo'
};
var iceServers =
{
iceServers: [STUN, TURN]
};
var pc = new RTCPeerConnection(iceServers);
Run Code Online (Sandbox Code Playgroud)
所以我的问题基本上是:是否可以设置几个STUN/TURN服务器?如果可能,我应该这样做,那代码会是什么样的?
我正在制作一个使用WebRTC的Web应用程序.它适用于桌面浏览器.但是,在小型智能手机网络浏览器上,有不需要的事件:
当在Android的移动网络浏览器chrome和forfox的firefox上切换标签时,使用.createDataChannel关闭创建一个开放的webrtc数据通道.该dataChannel.onclose事件处理程序被触发.如何防止数据通道关闭?如果不可能,是否可以在不重新启动整个信令阶段的情况下重新打开数据通道?
浏览文件时也会发生这种情况 <input type="file">
我浏览计算器了一下,发现有被砍掉其他东西/在活动标签页就像放缓requestTimeOut和setInterval.
是否需要任何自动化以强制它在后台保持打开状态.
/dev/video0,/dev/video1# v4l2-ctl --list-devices
Venus USB2.0 Camera (usb-0000:00:1a.0-1.2.2):
/dev/video1
USB 2.0 Camera (usb-0000:00:1a.0-1.3):
/dev/video0
Run Code Online (Sandbox Code Playgroud)
我需要将Ubuntu 14.04 主机上的网络摄像头共享到Ubuntu 16.04 docker容器,并且能够getUserMedia从主机和容器上运行的每个铬实例上的每个摄像头或两个独立的docker容器上获取视频流(WebRTC ).
为了测试getUserMedia,我正在浏览
FROM ubuntu:16.04
# Install chromium
RUN apt-get update \
&& apt-get install sudo chromium-browser alsa-base alsa-utils alsa-oss -y \
&& rm -rf /var/lib/apt/lists/*
# Create a normal user to run chromium as
RUN useradd --create-home browser …Run Code Online (Sandbox Code Playgroud) 我正在学习webRTC申请.
我的参考是这个软件
apprtc https://code.google.com/p/webrtc/source/browse/trunk/samples/js/apprtc/
演示 https://apprtc.appspot.com/
我的电脑有bult-in视频设备,apprtc使用这个视频设备.不过我想用USB摄像机代替.
我正在寻找改变输入视频设备的方法.但我在源文件中找不到任何线索.
有没有人有信息?
我正在使用webrtc视频构建一个自助服务终端应用程序.它只在内部网络上提供,我希望能够始终通过http允许我的网站的网络摄像头.使用ssl并不重要,只是证书的额外费用.
有没有办法做到这一点,还是我被卡住了?
我们需要从WebRTC(或客户端网络摄像头的任何其他捕获机制)捕获实时视频流,即使它不是在所有浏览器上都支持,而是作为PoC支持.
这个实时视频需要由服务器组件(ASP.Net MVC/Web API)处理,我想服务器上的代码看起来像:
[HttpPost]
public ActionResult HandleVideoStream(Stream videoStream)
{
//Handle the live stream
}
Run Code Online (Sandbox Code Playgroud)
寻找任何关键字或有用的链接.
我们已经实现了一种使用base64 jpg发送单个帧的方法,但这根本没用,因为base64编码有很大的开销,因为我们可以使用任何视频编码来更有效地发送视频(发送差异)在使用VPx -vp8-的帧之间,所需的解决方案需要从客户端的网络摄像头捕获视频并将其作为流 - 或数据块实时(未记录)发送到服务器(asp.net)代表新的视频数据.
我正在为1通道中的许多用户寻找实时扩展的廉价解决方案.
我正在使用sockjs,但在谈论非常大的数字时缩放非常烦人.
我正在考虑使用webrtc来降低p2p的成本.它不是连接到所有用户的服务器,而是仅连接到有限数量的用户,然后用户通过webrtc将他们的数据分发到p2p网络.这是明智的吗?什么是最简单的实施方式?
该信息不是私密的,几秒钟<5秒的延迟是可以接受的.
我一直在使用webkitGetUserMedia方法(getUserMedia通过adapter.js)在我的网络应用程序上为webRTC获取相机nad microhpone.我的服务器不安全(没有SSL证书).一切正常,直到我开始收到错误说:"getUserMedia()不再适用于不安全的起源.要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS.请参阅https:// goo. gl/rStTGz了解更多详情."
我用谷歌搜索,我看到现在在Chrome中我需要使用navigator.mediaDevices.getUserMedia().我使用的是Chrome 47.0.2526.80 m,在此页面上https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia,它表示此版本应该支持此方法.但是,当我调用navigator.mediaDevices.getUserMedia时,我得到了未定义.所以现在我不能在Chrome中使用任何一种方法.
任何人都可以帮我解决这个问题.谢谢
我正在开发一个应用程序,它将通过桌面复制API(使用DirectX 11)捕获屏幕(仅对前一个屏幕更新的差异)并在另一个窗口上呈现它(查看器可能在通过LAN连接的另一台机器上运行) .该代码是MSDN中提供的示例的改进版本.一切正常,除了设备没有给出任何屏幕更新,虽然在中间有一次,大约10%的时间在一些机器上发生(大多数在Windows 8/8.1机器上,很少在Windows 10机器上).我尝试了所有可能的方法来解决这个问题.减少了设备重置的次数,这为我提供了一些可靠的输出,但并不总能正常工作100%.
设备有时无法提供初始屏幕(全屏)(这种情况在所有支持桌面复制的Windows操作系统上有60%的时间发生),我想出了一个可以重新进行初步更新的工作.设备,直到它提供一个,但也导致多个问题,设备可能甚至不提供初始屏幕.
我已经投入了数周的时间来解决这个问题,但没有找到合适的解决方案,而且我所知道的论坛没有讨论这些问题.任何帮助,将不胜感激.
下面是我的代码,以获得前一个屏幕差异,初始化设备,填充适配器和监视器.
请耐心等待一段很长的代码片段,在此先感谢.
要获取屏幕更新:
INT getChangedRegions(int timeout, rectangles &dirtyRects, std::vector <MOVE_RECT> &moveRects, UINT &rect_count, RECT ScreenRect)
{
UINT diffArea = 0;
FRAME_DATA currentFrameData;
bool isTimeOut = false;
TRY
{
m_LastErrorCode = m_DuplicationManager.GetFrame(¤tFrameData, timeout, &isTimeOut);
if(SUCCEEDED(m_LastErrorCode) && (!isTimeOut))
{
if(currentFrameData.FrameInfo.TotalMetadataBufferSize)
{
m_CurrentFrameTexture = currentFrameData.Frame;
if(currentFrameData.MoveCount)
{
DXGI_OUTDUPL_MOVE_RECT* moveRectArray = reinterpret_cast<DXGI_OUTDUPL_MOVE_RECT*> (currentFrameData.MetaData);
if (moveRectArray)
{
for(UINT index = 0; index < currentFrameData.MoveCount; index++)
{
//WebRTC
// DirectX capturer API may randomly return unmoved move_rects, …Run Code Online (Sandbox Code Playgroud) webrtc ×10
javascript ×5
html5 ×2
html5-video ×2
asp.net ×1
asp.net-mvc ×1
c# ×1
chromium ×1
directx-11 ×1
docker ×1
dockerfile ×1
dxgi ×1
kiosk-mode ×1
ssl ×1
stun ×1
ubuntu-14.04 ×1
visual-c++ ×1
webcam ×1