Für die Schule muss ich eine HTML5-Live-Stream-Site einrichten. Sie haben einen Flash-Stream-Player, den sie verwendet haben, aber jetzt möchten sie, dass er stattdessen HTML5 verwendet. Wie kann ich das machen? Ich habe versucht, das Video-Tag zu verwenden, aber es funktioniert nicht. Unten ist der Code, den ich habe. Könnte mich jemand in die richtige Richtung weisen?
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Deltion Live Streaming</title>
<script language="javascript" type="text/javascript" src="https://stackoverflow.com/questions/5858936/swfobject.js"></script>
</head>
<body>
<video id="movie" width="460" height="306" preload autoplay>
<source src="rtmp://fl2.sz.xlcdn.com:80/sz=Deltion_College=lb1" type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"">
<!-- HERE THE CODE FOR THE ALTERNATIVE PLAYER (FLASH) WILL BE! -->
</video>
</body>
</html>
ähnlich für RTSP (offener RTMP-Nachfolger) stackoverflow.com/questions/1735933/…
Verwenden Sie einen Encoder (z. B. VLC oder FFmpeg), um Ihren Eingabestream in das OGG-Format zu paketieren. In diesem Fall habe ich beispielsweise VLC verwendet, um das Bildschirmaufnahmegerät mit diesem Code zu paketieren:
Dies sollte den Zweck erfüllen. Es ist jedoch eine Art schlechte Leistung und der AFAIK MP4-Containertyp sollte von Browsern besser unterstützt werden als OGG.
Funktioniert problemlos von jedem PC aus. Aber ich kann es nicht auf dem Handy zum Laufen bringen (z. B. von Chrome auf Android). Irgendeine Idee?
– Adorjan Princz
24. Dezember 13 um 7:51 Uhr
@AdorjanPrincz Dies liegt wahrscheinlich an einem fehlenden ogg-Decoder auf Android/Chrome. Probieren Sie verschiedene Video- (und/oder Container-) Formate aus.
– Zsolt
19. Februar 14 um 14:26 Uhr
Benutzer1390208
Live-Streaming in HTML5 ist über die Verwendung von Media Source Extensions (MSE) – dem relativ neuen W3C-Standard – möglich: https://www.w3.org/TR/media-source/
MSE ist eine Erweiterung von HTML5 <video> Schild; Das Javascript auf der Webseite kann Audio-/Videosegmente vom Server abrufen und sie zur Wiedergabe an MSE senden. Der Abrufmechanismus kann über HTTP-Anforderungen (MPEG-DASH) oder über WebSockets erfolgen. Ab September 2016 unterstützen alle gängigen Browser auf allen Geräten MSE. iOS ist die einzige Ausnahme.
Für HTML5-Live-Videostreaming mit hoher Latenz (5+ Sekunden) können Sie MPEG-DASH-Implementierungen von video.js oder der Wowza-Streaming-Engine in Betracht ziehen.
Für HTML5-Live-Videostreaming mit geringer Latenz und nahezu in Echtzeit werfen Sie einen Blick auf EvoStream-Medienserver, Unreal-Medienserver und WebRTC.
Zunächst müssen Sie einen Media-Streaming-Server einrichten. Sie können Wowza, red5 oder verwenden nginx-rtmp-Modul. Lesen Sie die Dokumentation und die Einrichtung auf dem gewünschten Betriebssystem. Alle Engines unterstützen HLS (Http Live Stream Protocol, das von Apple entwickelt wurde). Sie sollten die Dokumentation für config lesen. Beispiel mit nginx-rtmp-Modul:
rtmp {
server {
listen 1935; # Listen on standard RTMP port
chunk_size 4000;
application show {
live on;
# Turn on HLS
hls on;
hls_path /mnt/hls/;
hls_fragment 3;
hls_playlist_length 60;
# disable consuming the stream from nginx as rtmp
deny play all;
}
}
}
server {
listen 8080;
location /hls {
# Disable cache
add_header Cache-Control no-cache;
# CORS setup
add_header 'Access-Control-Allow-Origin' '*' always;
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
add_header 'Access-Control-Allow-Headers' 'Range';
# allow CORS preflight requests
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain charset=UTF-8';
add_header 'Content-Length' 0;
return 204;
}
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /mnt/;
}
}
Nachdem der Server erfolgreich eingerichtet und konfiguriert wurde. Sie müssen eine Rtmp-Encoder-Software (OBS, Wirecast …) verwenden, um mit dem Streaming wie Youtube oder Twitchtv zu beginnen.
Auf der Clientseite (in Ihrem Fall Browser) können Sie verwenden Videojs oder JWplayer, um Videos für Endbenutzer abzuspielen. Sie können für Videojs Folgendes tun:
Sie müssen keine anderen Plugins wie Flash hinzufügen (weil wir HLS und nicht rtmp verwenden). Dieser Player kann auch ohne Flash browserübergreifend funktionieren.
Ihre Konfigurationsdatei scheint den HTTP-Block für den Serverteil zu verpassen. Aber es fällt im Allgemeinen schwer, dieses Streaming-Geschäft zum Laufen zu bringen.
– Johanneskl
13. April 18 um 12:08 Uhr
Im HTML-Bereich rufen Sie stream.m3u8 auf, ich sehe diesen Namen nicht in der Serverkonfiguration, woher haben Sie ihn?
– Benutzer3058963
2. April 2020 um 4:41 Uhr
Richard
Im Moment funktioniert es nur in einigen Browsern, und soweit ich sehen kann, haben Sie nicht wirklich eine Datei verlinkt, das würde erklären, warum es nicht abgespielt wird.
aber wie Sie einen Live-Stream möchten (mit dem ich nicht getestet habe)
Sehen Sie sich Streaming über RTSP oder RTP in HTML5 an
Es ist nicht möglich, das RTMP-Protokoll in HTML 5 zu verwenden, da das RTMP-Protokoll nur zwischen dem Server und dem verwendet wird Blitz Spieler. Sie können also die anderen Streaming-Protokolle zum Anzeigen der Streaming-Videos in HTML 5 verwenden.
Was sind andere Protokolle?
– äh
5. Mai 16 um 8:55 Uhr
@eri HLS zum Beispiel
– TGO
13. Oktober 16 um 10:40 Uhr
Luca Ferri
Sie können einen fantastischen Bibliotheksnamen verwenden Videojs. Hier finden Sie weitere nützliche Informationen. Aber mit Schnellstart können Sie so etwas tun:
Verwenden Sie ffmpeg + ffserver. Es klappt!!! Sie können eine Konfigurationsdatei für ffserver von ffmpeg.org erhalten und die Werte entsprechend einstellen.
Bitte posten Sie Ihre Befehle und Konfigurationen, ich habe ein bisschen Probleme.
ähnlich für RTSP (offener RTMP-Nachfolger) stackoverflow.com/questions/1735933/…
– Ciro Santilli 新疆再教育营六四事件法轮功郝海东
20. Februar 16 um 10:34 Uhr
eingeschränktere Frage: stackoverflow.com/questions/21921790/…
– Ciro Santilli 新疆再教育营六四事件法轮功郝海东
20. Februar 16 um 10:37 Uhr