Online-Video-Website basierend auf IPFS-Videospeicherung

Video-Online-Wiedergabe-Website basierend auf IPFS Distributed Storage Network

Cloud-Adresse des Projektcodes: https://gitee.com/baldness_and_coldness/ipfs_streaming

1. Einführung in IPFS

IPFS ist ein brandneues Hypermedia-Textübertragungsprotokoll.Das Ziel ist das HTTP-Hypertextübertragungsprotokoll.Im Gegensatz zum HTTP-Protokoll ist das IPFS-Protokoll jedoch ein dezentralisiertesProtokoll.

Was ist Dezentralisierung?

Zentralisierung und Dezentralisierung

Zentralisierung : Alle Daten werden auf dem zentralen Server gespeichert, und alle Clients müssen Dienste vom zentralen Server anfordern.

Vorteile : hohe Datensicherheit, einfach zu implementierende Funktionen

Nachteile : starke Abhängigkeit vom zentralen Server, anfällig für Single Point of Failure, Performance-Engpässe

Dezentralisierung : Jeder Knoten, der dem Netzwerk beitritt, ist sowohl ein Client als auch ein Server, und alle Knoten haben den gleichen Status

Vorteile : Die Netzwerkphase ist stabiler und die Leistung ist besser

Nachteil : komplexes Design des Kommunikationsprotokolls

2. Projektvorstellung

Verwenden Sie das verteilte IPFS-Speichernetzwerk, um Videodaten zu speichern, und realisieren Sie die Funktionen des Video-Uploads und der Online-Wiedergabe über den Browser.

3. Projektstruktur

Architekturdiagramm
Es besteht hauptsächlich aus drei Teilen: Browserseite , Node.js-Server und IPFS-Netzwerk .

4. Projektinstallation

1. Installieren Sie ffmpeg
(siehe https://blog.csdn.net/chy466071353/article/details/54949221 )
2. Installieren Sie ipfs
(siehe https://blog.csdn.net/lhx0525/article/details/103528680 )
3. Initialisieren Sie ipfs und führen Sie den ipfs-Daemon aus , um den Daemon-Prozess zu starten.
4. npm install installiert zugehörige Abhängigkeitspakete.
5. npm start führt das Projekt aus
. 6. Browser-URL: http://localhost:3000/
Effektbild 1Effektbild 2

5. Projektablauf

Videos hochladen

Da das hochgeladene Video reibungsloser online abgespielt werden muss, wird das Video gemäß dem HLS-Protokoll geschnitten und verarbeitet, und die spezifische Implementierung wird durch das ffmpeg- Toolkit abgeschlossen.

1: Der Browser lädt das Video auf den Server hoch.
2: Der Server teilt die hochgeladenen Daten in Blöcke und sendet sie dann an das IPFS-Netzwerk.
3: Nachdem das IPFS-Netzwerk die Datenspeicherung abgeschlossen hat, gibt es den entsprechenden eindeutigen Hash-Code an den Server zurück , und der Server speichert sie, um die entsprechende m3u8-Datei zu generieren.
IPFS-Daten

(Der entsprechende Code zum Hochladen von Videos befindet sich in der server.js des Projekts)
Video abspielen

1. Der Browser initiiert eine Anfrage an den Server und findet die Antwortindexdatei .m3u8 über den Videonamen
2. Der Server gibt die Indexdatei zurück
3. Der Browser fordert die entsprechende Datei in .m3u8 vom IPFS-System an
4. IPFS gibt zurück TS-Daten

(Zugehörige Codes für die Online-Videowiedergabe befinden sich in der Datei „play.js“ und „app.js“ des Projekts.)

Der Kern des Projekts ist:

1. Verwenden Sie ffmpeg, um Videos zu teilen und abzuspielen

2. Verwenden Sie über das js-Toolkit ipfs-api den js-Code, um das IPFS-Netzwerk zu betreiben.

Aufgrund begrenzter Ressourcen wird keine unabhängige Datenbank eingeführt, und die m3u8-Datei kann nur auf dem Node.js-Server gespeichert werden.

Wenn möglich, sollten Sie eine unabhängige Datenbank aufbauen, alle m3u8-Dateien und ts-Dateien im IPFS-Netzwerk speichern und die Zugriffsverbindung der m3u8-Dateien zu mysql speichern.

Dadurch kann die Zugriffsgeschwindigkeit enorm beschleunigt werden und gleichzeitig lassen sich Funktionen wie Sortierung nach Klicks und Hotlist einfacher umsetzen

Acho que você gosta

Origin blog.csdn.net/awsl_6699/article/details/123505190
Recomendado
Clasificación