Ich arbeite an einer App mit Video-Streaming-Funktionalität. Ich verwende Firebase-Datenbank und Firebase-Speicher. Ich versuche, eine Dokumentation darüber zu finden, wie Firebase-Speicher mit Videodateien umgeht, kann aber nicht wirklich viel finden.
In den Dokumenten wird erwähnt, dass Firebase Storage mit anderen Google App-Diensten zusammenarbeitet, um CDN- und Video-Streaming zu ermöglichen, aber alle Suchanfragen scheinen in eine Sackgasse zu führen. Irgendein Rat?
Antworten:
Ich denke, es gibt verschiedene Arten von Video-Streaming, die unsere Antwort hier ändern könnten:
Nachdem ich eine Live-Streaming-App im Periscope-Stil mit Firebase Storage und der Firebase-Echtzeitdatenbank erstellt habe, empfehle ich dringend davon ab - wir haben drei Sekunden-Chunks hochgeladen und sie über die Echtzeitdatenbank synchronisiert. Während es funktionierte (überraschend gut), gab es eine Latenz von ~ 5 Sekunden über sehr gutes Internet und es war auch nicht die effizienteste Lösung (schließlich laden Sie das Video hoch und speichern es, und es gab keine Transcodierung). . Ich empfehle die Verwendung eines WebRTC-Stils, der für den Videotransport entwickelt wurde, und die Verwendung der Echtzeitdatenbank für die Signalisierung neben dem Stream.
Auf der anderen Seite ist es definitiv möglich, mobiles YT auf Firebase-Funktionen aufzubauen. Der Trick hier besteht darin, das Video zu transkodieren (mit Zencoder oder Bitmovin, mehr hier: https://cloud.google.com/solutions/media/ ), um das hochgeladene Video in kleinere Teile mit unterschiedlichen Auflösungen (und) zu zerlegen In verschiedenen Formaten benötigt iOS beispielsweise HLS für das Streaming. Ihr Client kann Chunk-Informationen in der Echtzeitdatenbank speichern (Chunk-Name, verfügbare Auflösungen, Anzahl der Chunks) und diese Chunks im Verlauf des Videos aus dem Speicher herunterladen.
quelle
Wenn Sie ein Video von Firebase Storage dämpfen möchten, ist dies der beste Weg, den ich gefunden habe. Dies hängt von der Größe Ihrer Videodatei ab. Ich fordere nur 10-30 MB Dateien an, daher funktioniert diese Lösung gut für mich. Behandle die Firebase-URL einfach als normale URL:
Wenn Sie das Video schleifen möchten:
Wenn Sie vor dem Start des Videos einen Fortschrittsbalken anzeigen möchten, gehen Sie wie folgt vor:
Dies ist nicht die beste Art, Dinge zu tun, aber es funktioniert für mich im Moment, bis ich einen guten Video-Streaming-Service finde.
quelle
2020: Ja, Firebase-Speicher-Video-Streaming ist einfach und möglich.
Alle anderen Fragen legen nahe, dass Sie ein Protokoll wie HLS verwenden. Dies ist jedoch nur erforderlich, wenn Sie eine App für den Apple AppStore entwickeln, die Videos bereitstellt, die länger als 10 Minuten dauern.
In allen anderen Fällen können Sie Ihre Videos einfach in mp4 codieren und auf firebase hochladen. Ihre Kunden können dann die mp4 problemlos streamen. Stellen Sie einfach sicher, dass sich Ihr moov-Atom am Anfang Ihrer mp4-Datei befindet. Auf diese Weise können Sie das Video sofort abspielen, auch wenn es nicht vollständig geladen ist. Benutzer können dank variabler Bitanforderungen, die vom Firebase-Speicher unterstützt werden, auch vorwärts oder rückwärts springen.
Laden Sie zum Testen einfach ein Video in Ihren Firebase-Speicher hoch und öffnen Sie es in Ihrem Browser.
quelle
Sie können HLS-Videos im Firebase Cloud Storage hosten. Es funktioniert ziemlich gut für mich. Der Trick besteht darin, die Wiedergabelistendateien so zu ändern
.m3u8
, dass sie das Präfix des Speicherordners und das?alt=media
Suffix für jeden Dateieintrag in der Wiedergabeliste enthalten:Sie auch nicht wirklich haben , um serverseitige Transcodierungs verwenden, können Sie den Client haben, der das Video es tut uploads und sparen erheblich Kosten.
Ich habe hier ein vollständiges Tutorial mit Quellcode geschrieben: https://itnext.io/how-to-make-a-serverless-flutter-video-sharing-app-with-firebase-storage-including-hls-and- 411e4fff68fa
quelle
Wenn Sie eine YT-ähnliche App erstellen möchten, können Sie zuerst das Video komprimieren. Ich empfehle, diese Bibliothek zum Verwalten der Videokomprimierung zu verwenden. Ich empfehle die in diesem Link . Ich habe es geschafft, ein Video von 118 mg auf 6 mg in weniger als 42 Sekunden zu komprimieren. Es hat auch eine großartige Demo-App, folgen Sie einfach dem Beispiel.
Nachdem Sie die komprimierte Datei erhalten haben, laden Sie die Datei in den Speicher hoch. In Ihrer Client-App spielen Sie die Video-URL mit einem Player wie Exo Player ab.
quelle