2014-09-12 2 views
0

Я использую XSockets для отправки данных в режиме реального времени любым подключенным клиентам. Каждое изображение довольно большое (до 1080p качество), а видео может быть до 30 кадров в секунду. Поэтому есть масса данных, которые смещаются вокруг. Всякий раз, когда я получаю новый образ, который я вызвать событие и в настоящее время проходят необработанный массив байтов клиенту, как такИсключение памяти XSockets InvokeToAll

void NewImage(byte[] imgData) 
{ 
    this.InvokeToAll(imgData, "newimage"); 
} 

Мой обработчик Java Script в настоящее время пуст, и даже ничего не делает с полученными данными (у меня есть убедитесь, что он работает, распечатывая сообщение и т. д., когда получено новое изображение).

Без кода InvokeToAll моя программа запускается без каких-либо проблем, и я использовал тот же код для рендеринга Winforms до этого без каких-либо проблем. После запуска этого кода в течение нескольких секунд он падает из-за исключения из памяти. Есть ли что-то, чего я здесь не вижу, imgData является нулевым, откуда он отправляется (после отправки его клиентам), а код работает вне XSockets без каких-либо проблем.

+0

Вы уверены, что веб-сокеты предназначены для потоковой передачи видео ?????? –

+0

@ MatíasFidemraizer Да, он должен работать нормально. См. Здесь - https://stackoverflow.com/questions/25727065/rendering-series-of-images-as-video-onto-a-webpage –

+0

Но вы злоупотребляете концепцией. Другие вопросы Q & A говорят о потоковых изображениях какого-то датчика, и это не будет потоком видео 1080p/30fps ... Веб-сокеты будут работать как шарм для отправки 1 pic в секунду или с интервалом более 30fps ... Для других использует ли у вас фактические серверы потоковой передачи видео и тег HTML5 'video'? –

ответ

0

Как мы пришли к выводу, что в потоке комментариев вопрос делает возможным потоковое видео с использованием WebSockets, но это подразумевает реализацию пользовательского кодека потоковой передачи видео, а IMHO это должно выйти из области вашего проекта - заново изобретать колесо -.

Если вы находитесь на платформе .NET, вы должны использовать систему Windows Server в качестве среды размещения, а это значит, что вы можете использовать Windows Server Media Pack. Follow this link for more info about the topic.

Должны быть другие возможности для потокового видео в Интернете, это всего лишь один из них.

Смежные вопросы