Потокове передавання відео через веб-сокети з використанням JavaScript


84

Який найшвидший спосіб транслювати відео в прямому ефірі за допомогою JavaScript? Чи є WebSockets через TCP достатньо швидким протоколом для передачі відео, скажімо, 30 кадрів в секунду?


1
Gert G: Що б ви порадили? Я вважаю за краще, щоб споживання пам'яті було відносно низьким, тому JS (оновлення полотна HTML5) здається кращим варіантом, якщо він може запропонувати досить хорошу швидкість.
SMiLE

1
На жаль, забув сказати, що я зацікавлений у прямому ефірі, а не просто в потоковому передаванні відео, що зберігається у файлі. <video> може запропонувати це?
SMiLE

2
Я б не був так стурбований потоковим частини, а як би ви надаєте відео в потоковому таким чином. Це взагалі можливо?
обдурити

4
Щодо швидкого роздуму, це приклади швидких частот кадрів і відео за допомогою HTML 5: The Wilderness Downtown (Chrome, video) thewildernessdowntown.com та Quake в HTML 5 (Chrome, частота кадрів) techcrunch.com/2010/04/01/ google-html5-quake Кілька доказів концепції. Це лише покращиться. Хтось скориться досить швидко і скористається перевагами раннього гравця на ринку, якщо хтось ще цього не зробив. Чи затримав би я дихання для ІЕ? Не знаю '
Джон К

2
Дякую за приклади, Джон К.
SMiLE

Відповіді:


79

Чи є WebSockets через TCP достатньо швидким протоколом для передачі відео, скажімо, 30 кадрів в секунду?

Так .. це, погляньте на цей проект . Веб-розетки можуть легко впоратися з потоковою передачею відео у форматі HD .. Однак слід вибрати адаптивне потокове передавання. Я пояснюю тут , як ви могли б реалізувати його.

На даний момент ми працюємо над веб-програмою обміну миттєвими повідомленнями з чатом, обміном файлами та підтримкою відео / веб-камери. За допомогою декількох хитрощів ми отримали потокове мультимедіа через веб-сокети (використовували HTML5 Media Capture для отримання потоку з наших веб-камер).

Вам потрібно побудувати a stream APIта a Media Stream Transceiverдля управління відповідними процесорами обробки та транспортування.


4
Це чудово, дякую! Думаю, я спробую дуже базову реалізацію потокового відео, яке взагалі не є адаптивним, подивіться на результати і продовжуйте відповідно; знаючи, що це можливо, все ж обнадіює! Ваш підручник також дуже корисний.
SMiLE

1
Так .. це хороша практика - починати з простого застосування. Вам доведеться самостійно побудувати більшість технологій, необхідних для прямої трансляції, що, мабуть, не підходить, коли ви: А. просто починаєте, а Б. залишаєтеся наодинці. Удачі.
Wouter Dorgelo

@ Mr.Pallazzo, для чого ви створюєте додаток? Бізнес? Будь-який шанс, що я можу зв’язатися з вами про те, як ви це робите?
Алістер

@WouterDorgelo, яка продуктивність вашої програми при потоковій передачі HD через веб-сокети?
кварки

Чи можемо ми записати відео CCTVта показати його в реальному часі на веб-сторінці за допомогою Javascript?
shaijut

1

Запропоновано розширення медіа-джерел, яке дозволить реалізувати адаптивне потокове передавання потоків.


Чи існує проект ws2video.js або щось подібне, яке показує, як швидко це відбувається? У цій публікації в блозі згадується, що це спричиняє 5 секунд
Тадді Тіл,

0

Щоб відповісти на питання:

Який найшвидший спосіб транслювати відео в прямому ефірі за допомогою JavaScript? Чи є WebSockets через TCP достатньо швидким протоколом для передачі відео, скажімо, 30 кадрів в секунду?

Так, Websocket можна використовувати для передачі понад 30 кадрів в секунду і навіть 60 кадрів в секунду.

Основна проблема Websocket полягає в тому, що він низького рівня, і вам доводиться мати справу з іншими проблемами, ніж просто передача відео фрагментів. Загалом, це чудовий транспорт для відео, а також аудіо.


Отже, як щодо WebRTC? Він (як w3c) працює на з'єднанні UDP, і якщо у нас є певна втрата пакетів, це не буде проблемою. З іншого боку, WebSocket орієнтований на підключення, і це може турбувати користувачів через затримку, яка могла б статися.
М. Ростамі

-1

Це, безумовно, можливо, але я не впевнений, що ми ще там. Тим часом я б рекомендував використовувати щось на зразок Silverlight із IIS Smooth Streaming . Silverlight базується на плагінах, але працює в Windows / OSX / Linux. Одного разу елемент HTML5<video> буде правильним шляхом, але це трохи не матиме підтримки.


Дякую за Вашу відповідь. Я згоден з тим, що Silverlight та Flash напевно є кращими варіантами на даний момент. Я думаю, мене цікавить потокове передавання Javascript, оскільки воно відкриває більше можливостей для взаємодії між користувачем та сервером (що передає відео).
SMiLE

Я повинен погодитися з Джошем .. Якщо вам зараз дуже потрібна потокова передача мультимедіа, не використовуйте HTML5.
Wouter Dorgelo

7
Про всяк випадок, якщо хтось все ще читає це: First of Silverlight ніколи не підтримував Linux або мобільні системи. Підтримка Linux silverlight просто ніколи не існувала. По-друге, як правильно вказують нові відповіді, потокове передавання відео HTML5 / MSE зараз цілком можливо у сучасних браузерах, і йому слід віддавати перевагу майже у всіх випадках перед будь-яким підходом на основі плагінів.
ntninja

3
І якщо хтось все ще читає це, той день настав. Для любові до Бога не використовуй
сріблясте світло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.