Потоковая передача через RTSP или RTP в HTML5

Я создаю веб-приложение, которое должно воспроизводить поток RTSP/RTP с сервера http://lscube.org/projects/feng.

Поддерживает ли HTML5 видео/аудио тег rtsp или rtp? Если нет, то каково было бы самое простое решение? Возможно, спуститесь к плагину VLC или что-то в этом роде.

Ответ 1

Технически "Да"

(но не очень...)

Тег HTML 5 <video> является агрегированным протоколом - ему все равно. Вы размещаете протокол в атрибуте src как часть URL-адреса. Например:.

<video src="rtp://myserver.com/path/to/stream">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

или, возможно,

<video src="http://myserver.com:1935/path/to/stream/myPlaylist.m3u8">
    Your browser does not support the VIDEO tag and/or RTP streams.
</video>

Тем не менее, реализация тега <video> специфична для браузера. Поскольку это ранние дни для HTML 5, я ожидаю часто меняющуюся поддержку (или отсутствие поддержки).

Из спецификации W3C HTML5 (Элемент видео):

Пользовательские агенты могут поддерживать любые видео и аудио кодеки и форматы контейнеров.

Ответ 2

Дух вопроса, я думаю, не был дан ответ. Нет, вы не можете использовать тег видео для воспроизведения потоков rtsp на данный момент. Другой ответ, связанный с ссылкой на Chromium guy "never", немного вводит в заблуждение, поскольку связанный поток/ответ напрямую не ссылается на Chrome rtsp через тег видео. Прочитайте весь связанный поток, особенно комментарии в самом низу и ссылки на другие темы.

Реальный ответ таков: нет, вы не можете просто поместить видеотег на страницу html 5 и сыграть rtsp. Вам нужно использовать какую-либо библиотеку Javascript (если вы не хотите играть в игры со вспышками и игроками silverlight), чтобы воспроизводить потоковое видео. {IMHO} По скорости обсуждения и реализации видео html 5 различные производители собственных видеостандартов не заинтересованы в том, чтобы помочь этому движению вперед, поэтому не рассчитывайте на обещанную легкость использования видеотега, если только разработчики браузера возьмите на себя, чтобы как-то решить проблему... опять же, вряд ли. {/IMHO}

Ответ 3

Chrome никогда не будет реализовывать поддержку RTSP-потоковой передачи.

По крайней мере, по словам разработчика Chromium здесь:

мы никогда не будем добавлять поддержку для этого

Ответ 4

Это старый вопрос, но я должен был сделать это сам недавно, и я достиг чего-то, работающего так (помимо того, что ответ вроде моего спасет меня некоторое время): В основном используйте ffmpeg для изменения контейнера в HLS, большую часть потока IPCams h264 и некоторый базовый тип PCM, поэтому используйте что-то вроде этого:

ffmpeg -v info -i rtsp://ip:port/h264.sdp -c:v copy -c:a copy -bufsize 1835k -pix_fmt yuv420p -flags -global_header -hls_time 10 -hls_list_size 6 -hls_wrap 10 -start_number 1 /var/www/html/test.m3u8

Затем используйте video.js с плагин HLS. будет играть в режиме реального времени красиво. Также есть пример jsfiddle по второй ссылке).

Примечание. Хотя это не встроенная поддержка, она не требует ничего лишнего на интерфейсе пользователя.

Ответ 5

В HTML5 есть три потоковых протокола/технологии:

Прямая трансляция, низкая латентность - WebRTC - Websocket

VOD и потоковая передача в реальном времени, высокая латентность - HLS

1. WebRTC

Фактически WebRTC - это протокол SRTP (безопасный протокол RTP). Таким образом, мы можем сказать, что тег видео поддерживает RTP (SRTP) косвенно через WebRTC.

Поэтому для получения потока RTP на вашем браузере Chrome, Firefox или другом браузере HTML5 вам нужен сервер WebRTC, который будет доставлять поток SRTP в браузер.

2. WebSocket

Он основан на TCP, но с меньшей задержкой, чем HLS. Снова вам нужен сервер Websocket.

3. HLS

Самый популярный протокол потоковой передачи с высокой задержкой для VOD (предварительно записанное видео).

Ответ 6

С VLC я могу перекодировать поток RTSP в реальном времени (mpeg4) в поток HTTP в формате OGG (Vorbis/Theora). Качество плохое, но видео работает в Chrome 9. Я также тестировал транскодирование в WEBM (VP8), но он, похоже, не работает (у VLC есть опция, но я не знаю, действительно ли она реализована на данный момент.)

Первый, чтобы иметь документ об этом, должен уведомить нас;)

Ответ 7

Мои наблюдения за потоками видео тегов HTML 5 и rtsp (rtp) состоят в том, что он работает только с konqueror (KDE 4.4.1, Phonon-backend, установленный в GStreamer). Я получил только видео (без звука) с потоком RTSP (RTP) H.264/AAC.

Потоки из http://media.esof2010.org/ не работают с konqueror (KDE 4.4.1, Phonon-backend, установленный в GStreamer).

Ответ 8

Chrome не реализует поддержку потоковой передачи RTSP. Важный проект для проверки WebRTC.

"WebRTC - это бесплатный открытый проект, который предоставляет браузеры и мобильные приложения возможности Real-Time Communications (RTC) через простые API-интерфейсы"

Поддерживаемые браузеры:

Chrome, Firefox и Opera.

Поддерживаемые мобильные платформы:

Android и IOS

http://www.webrtc.org/