使用 socket.io 广播网络摄像头?

Posted

技术标签:

【中文标题】使用 socket.io 广播网络摄像头?【英文标题】:Broadcast web cam with socket.io? 【发布时间】:2014-08-17 09:59:21 【问题描述】:

我可以使用以下代码从浏览器获取流:

var socket = io.connect('127.0.0.1:9000');
navigator.getUserMedia  = navigator.getUserMedia ||
                          navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia ||
                          navigator.msGetUserMedia;


var cam;
navigator.getUserMedia(video: true, audio: true, function(stream) 
    //var call = peer.call('another-peers-id', stream);
        //call.on('stream', function(remoteStream) 
        // Show stream in some video/canvas element.
    //);
    cam = stream;
    console.log(stream);
, function(err) 
    console.log('Failed to get local stream' ,err);
);

现在我想将直播流发送到 socket.io 服务器,然后使用 socket.io 服务器进行广播。 有什么简单的代码可以做到吗?

【问题讨论】:

我想知道socket.io 1.0的新版本和流处理功能,我们可以传递一个getusermedia流,如果有人尝试过反馈会很有趣 也许这不是您想要的,但您可能会发现 socket.io-stream 模块很有用。 我正在尝试同样的事情;但我通过套接字发送网络摄像头的屏幕截图。让我知道您是否可以让 socket.io-stream 为其工作,它似乎是为此而构建的新事物。 也许这个问题可以帮助您如何将流发送到服务器。 ***.com/questions/24836741/… 没有这方面的信息似乎真的很愚蠢。这是当 WebRTC 和 Socket.io 在同一个句子中被说出时我想到的第一件事,然而经过 3 个小时的搜索,似乎没有人知道如何做到这一点,或者为什么它可能不可能。很奇怪。 【参考方案1】:

我尝试了几天来让这样的东西工作,在进入兔子洞之后,我最终只是在 AWS 上启动了一个 Wowza 媒体服务器实例(遵循these instructions)并使用我的节点管理服务器实例而不是尝试制作视频。

效果很好很漂亮。扩展性好(甚至自动扩展),相对容易部署,并且在他们的论坛上有很大的支持。 A++,会再次编码。

另外,如果这是一个商业项目,最终你可能需要做一些转码/缩放/水印,Wowza 在 Amazon 的图形实例上利用 GPU 上的 NVENC,这只是将其他任何东西都吹掉了。水。

【讨论】:

酷,您能分享任何有关成本的数据吗?您是否考虑过使用 YouTube 直播 API?

以上是关于使用 socket.io 广播网络摄像头?的主要内容,如果未能解决你的问题,请参考以下文章

Windows IOT 广播网络摄像头

Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

VB6广播网络摄像头的解决方案

Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

使用 WebRTC 从网络摄像头捕获媒体流,将流发布到媒体服务器并从那里分发

使用red5服务器广播