Das von FFMPEG generierte DASH-Manifest für Livestream ist ungültig, kann aber auf einigen Playern noch abgespielt werden.

Das von FFMPEG generierte DASH-Manifest für Livestream ist ungültig, kann aber auf einigen Playern noch abgespielt werden.

Ich versuche, einen RTSP-Stream von einer IP-Kamera in eine Website einzubetten. Ich habe herausgefunden, dass das direkte Einbetten eines RTSP schwierig und einfallsreich ist und dass der Benutzer einige wichtige Aktionen ausführen muss (verschiedene Player wie VLC installieren oder einige Browser-Plugins aktivieren). Daher habe ich beschlossen, den RTSP-Stream mithilfe von FFMPEG im Handumdrehen in einen Live-Stream (HLS oder MPEG-DASH) umzuwandeln. Wenn ich versuche, HLS-Dateien zu generieren, springt die CPU-Auslastung auf 100 %, daher dachte ich (da mein Videoserver mit einer Single-Core-CPU ziemlich schwach ist), dass MPEG-DASH die Option ist, bei der ich bleiben sollte, da es 2-3 % der CPU-Auslastung hinzufügt, was mehr als akzeptabel ist. Wenn ich jedoch versuche, meine manifest.mpd-Datei mithttps://conformance.dashif.org/Es gibt Folgendes zurück:

✔ XLink resolving
✖ MPD Validation
✖ Schematron Validation

Ich habe versucht, das Manifest des Livestreams abzuspielen mitDash.jsaber der Player bleibt im Ladezustand hängen. Wenn ich jedoch versuche, das Manifest dieses Livestreams abzuspielen mitVLC,JW-Spieler 8UndTHEOSpieler, es funktioniert perfekt. Gibt jedoch ffprobezurück: http://MY_PUBLIC_IP:PORT/mpeg-dash/manifest.mpd: Invalid data found when processing input. Was mache ich falsch und wie erstelle ich meine Dash-Dateien, damit sie mit herkömmlichen (und kostenlosen) Playern wieDash.js?

Ressourcen:

Aktuellmanifest.mpd.

Der Befehl, den ich verwende:ffmpeg -i rtsp://USERNAME:[email protected]:554/live -an -c:v copy -b:v 2000k -f dash -window_size 10 -extra_window_size 0 -min_seg_duration 2000000 -use_timeline 1 -use_template 1 -remove_at_exit 1 /var/www/camera/mpeg-dash/manifest.mpd

verwandte Informationen