Показать поток tcp, используя HTML

0

Я хочу передать видео с веб-камеры с помощью gstreamer в сеть. Во встроенной среде Linux у меня есть gstreamer со следующей командой:

gst-launch mfw_v4lsrc ! vpuenc codec=12 ! multipartmux ! tcpserversink host=127.0.0.1 port=1234 sync=false

Я могу получить этот поток с помощью проигрывателя VLC, используя tcp://127.0.0.1:1234. Это работает отлично.

Теперь я хочу показать видео в своем веб-браузере. Я понял, что не могу использовать тег HTML5. Это показывает черное изображение. Также с помощью http://127.0.0.1:1234 будет отображаться видеоконтроль, но нет видео.

Поэтому я пытаюсь использовать PHP для получения потока и pusblish их с веб-сервером. Я применил пример на веб-сайте php:

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>

Это только печатает полученные байты потока. Но я не знаю, как кодировать поток, чтобы показать видео. Как преобразовать поток в видео, показываемое на веб-странице?

  • 0
    Я обновил ссылку на источники в Kurento - сейчас они на самом деле используют GStreamer, но я не понял, как использовать его отдельно.
  • 0
    Спасибо, но я решил проблему с помощью WebRTC.
Теги:
video-streaming
tcp
gstreamer

1 ответ

1
Лучший ответ

Самый удобный для браузера способ:

Потоковая передача WebRTC

В настоящее время я все еще ищу хороший способ сделать это.

ИЛИ

Вы можете использовать потоковый сервер для:

  • proxy поток RTMP (первоначально Adobe, opensourced now);
  • распространять HTTP потоковое видео (hls);
  • распространять поток HTTP MPEG-DASH.

Я лично использую модуль RTMP nginx. Существуют и другие варианты, такие как Wowza.

RTMP

Есть flvmux ! rtmpsink flvmux ! rtmpsink в GStreamer.

На странице вам понадобится Flash-плеер. JWPlayer работал для меня.

HLS

Поток его with nginx-rtmp-module или вы можете играть с этой маленькой программой запуска http.

HLS будет работать на iOS и Android, но не на рабочем столе (не без Javascript-клиента).

DASH

Поток с nginx-rtmp-module.

Поток DASH поддерживается HTML5 в некоторых браузерах - в зависимости от используемых кодеков, ситуация довольно плохая, плюс для этого вам понадобится плеер dash.js.

И HLS, и DASH нуждаются в поддержке Source Media Extensions в браузере рабочего стола (теперь в Chrome, Safari и Opera) и Javascript-плеере для его использования.

Поддержка браузера для некоторых ключевых технологий и кодеков: https://html5test.com/compare/feature/webrtc-webrtc/video-mediasource/video-h264/video-webmvp8.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню