3

Я пытаюсь построить веб-чат видео-чата с помощью html и javascript. До сих пор я нашел этот код, который обращается к микрофонам и веб-камерам на устройстве клиента и отображает видео и аудио на экране этого клиента. Вот этот код:Как отправить потоковое видео и аудио данные на сервер?

<html> 
<head> 

<script> 

navigator.getUserMedia = navigator.getUserMedia || 
         navigator.webkitGetUserMedia || 
         navigator.mozGetUserMedia; 

if (navigator.getUserMedia) { 
    navigator.getUserMedia({ audio: true, video: { width: 1280, height: 720 } }, 
     function(stream) { 
     var video = document.querySelector('video'); 
     video.src = window.URL.createObjectURL(stream); 
     video.onloadedmetadata = function(e) { 
      video.play(); 
     }; 
     }, 
     function(err) { 
     console.log("The following error occurred: " + err.name); 
     } 
    ); 
} else { 
    console.log("getUserMedia not supported"); 
} 

</script> 
</head> 

<body> 

<video></video> 

</body> 
</html> 

Для видео чат веб-приложение для работы с видео и аудио данные должны быть отправлены обратно на сервер, где сервер может обрабатывать эти данные и отправить его на компьютер других клиентов где у обоих людей может быть видеочат. Я провел некоторое исследование, и я считаю, что веб-сайты могут быть лучшим выбором для отправки этих видео и аудиоданных на сервер и для отправки сервером на другой компьютер клиентов. Я хочу иметь возможность создавать websocket, используя как серверный, так и javascript на стороне клиента. когда я провел некоторое исследование, я нашел код, в котором объясняется, как создать соединение с веб-сайтом, а затем, как отправить серверу некоторые данные. вот код, который я нашел для этого:

var ws = new WebSocket("ws://localhost:9998/echo"); 

      ws.onopen = function() 
      { 
       // Web Socket is connected, send data using send() 
       ws.send("Message to send"); 
       alert("Message is sent..."); 
      }; 

То, что я не понимаю, каким образом сервер может получить эти данные, используя Серверный JavaScript. Я также не понимаю, как javascript на стороне сервера должен отправлять эти данные на javascript на стороне клиента на другом клиентском компьютере через websocket. Я бы чрезвычайно оценил все идеи, исходный код и ссылки о том, как отправлять потоковое видео и аудио данные на сервер, а затем сервер получать данные с помощью серверной части javascript, а затем для того, чтобы сервер мог отправлять эти данные другому клиентский компьютер. Точно так же я хотел бы знать, являются ли веб-узлы хорошим способом выполнения этой задачи, а если нет, то какие способы вы могли бы предложить.

Спасибо за ваше время!

ответ

0

Я думаю, что вам может пригодиться использование медиа-сервера, такого как Kurento. Вы можете проверить учебники, с помощью nodejs на стороне сервера, here. Они используют веб-интерфейсы для связи между серверами и клиентами, а расширение любого из учебников будет довольно легко для вас.

Код JavaScript на стороне сервера - это то, что называется в медиа-мире сигнальным сервером. Эта часть кода отвечает за маршрутизацию вызовов, подключение и регистрацию пользователей, аутентификацию и так далее. Он также отвечает за контроль над обменом СМИ, но не в реальном обмене средствами массовой информации. Средства массовой информации протекают между клиентами и медиа-сервером.

Отказ от ответственности: Я часть команды Kurento.

1

Нет проблем для решения этой проблемы. Браузер не может сделать это без плагина (flash, java) только с помощью html5 и java-script.

Только апи я нашел WebRTC: https://webrtc.org/start/ http://web-engineering.info/node/57 они пытаются решить эту проблему и предоставить решение без дополнительного программного обеспечения, но сейчас он все еще является экспериментальной, а не стандарт.