gpt4 book ai didi

ruby-on-rails - 使用 rails webrtc 和 HTML5 构建视频 session

转载 作者:太空狗 更新时间:2023-10-29 14:45:52 25 4
gpt4 key购买 nike

我需要为我的 ruby​​ on rails 应用程序构建视频 session 功能。我遇到了一个 html5 教程,它使您能够通过浏览器访问您的相机。打开摄像头后,您可以看到实时视频摄像头画面并拍摄快照。代码如下

javascript代码:

  // Put event listeners into place
window.addEventListener("DOMContentLoaded", function() {
// Grab elements, create settings, etc.
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function(error) {
console.log("Video capture error: ", error.code);
};

// Put video listeners into place
if(navigator.getUserMedia) { // Standard
navigator.getUserMedia(videoObj, function(stream) {
video.src = stream;
video.play();
}, errBack);
} else if(navigator.webkitGetUserMedia) { // WebKit-prefixed
navigator.webkitGetUserMedia(videoObj, function(stream){
video.src = window.webkitURL.createObjectURL(stream);
video.play();
}, errBack);
}
else if(navigator.mozGetUserMedia) { // Firefox-prefixed
navigator.mozGetUserMedia(videoObj, function(stream){
video.src = window.URL.createObjectURL(stream);
video.play();
}, errBack);

}

// Trigger photo take
document.getElementById("snap").addEventListener("click", function(e) {
context.drawImage(video, 0, 0, 640, 480);
});

}, false);

html代码:

<h1>New video</h1>

<!--<%= render 'form' %>-->
<video id="video" width="640" height="480" autoplay></video>
<button id="snap">Snap Photo</button>
<canvas id="canvas" width="640" height="480"></canvas>
<div class="actions">

我需要一种方法来将我看到的实时视频源流式传输给服务器中的另一个用户。我怎么能这样做?网络套接字能让我做到这一点吗?如果是这样怎么办?

最佳答案

你绝对可以做到。

首先,您需要了解 WebRTC 的工作原理以及它需要什么。您需要一个信令服务器(现有的,或者您自己编写的)。如果您决定自己编写,则需要任何类型的客户端-服务器-客户端架构和传输方法(其中之一是 websockets)。

通过 websockets(或任何其他传输),您需要交换 session 描述(一个点提供,另一个点回答)以建立连接。实际上,信令服务器只是客户端和服务器端的几个监听器,它们只是在建立 WebRTC 连接之前将信号(相对较小的文本数据 block )从一个对等方传递到另一个对等方。

正确的方式

我建议调查这个应用程序的主要代码https://apprtc.appspot.com/ (我在这里保存了主要代码 https://gist.github.com/igorpavlov/18af35999f8c7838cf21 )。了解它的工作原理对您来说非常好。

简单的方法

您还可以使用库来调用 https://simplewebrtc.com/ (www.talky.io 在这个库上工作),但你仍然需要一个信令服务器。

祝你好运!

关于ruby-on-rails - 使用 rails webrtc 和 HTML5 构建视频 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com