Es gibt mehrere Lösungen, die mehr oder weniger Industriestandard sind. Ich würde davon abraten, andere hackige Lösungen für Ihr Problem zu finden.
Erstens verwenden große Streaming-Sites Content Delivery Networks (CDNs), auf denen der eigentliche Inhalt gehostet wird. Diese Server unterscheiden sich von den Webservern (die die Webseite oder Skripts hosten) und arbeiten unabhängig voneinander. Sie dienen hauptsächlich dazu, Videoinhalte zu hosten und näher am Standort des Benutzers zu speichern. Die Aufgabe Ihrer Webanwendung besteht darin, die Videoquellenverknüpfung, die auf Server A verweist, durch eine direkte Verbindung zum Inhaltsserver zu ersetzen - je nachdem, welcher näher am Benutzer liegt oder schneller reagiert (ein typischer Lastausgleichsfall). Bei Servern der zweiten Schicht sollten Sie einen Webserver (wie Nginx) einrichten und direkt mit den Videos verknüpfen.
Wenn Sie die Netzwerkanfragen Ihres Browsers an YouTube überprüfen, verwenden diese unterschiedliche Domains. Der Videoinhalt stammt aus einer völlig anderen Quelle als die eigentliche Website - höchstwahrscheinlich ist dies ein Server in Ihrer Nähe, mit dem Ihr ISP eine direkte Peering-Verbindung hat.
Stellen Sie sicher, dass Ihre Videos, wenn es sich um MP4-Dateien handelt, ihr MOOV-Atom am Anfang der Datei haben. Dies verringert die Startverzögerung, da der Client möglicherweise abgespielt wird, auch wenn die gesamte Datei noch nicht übertragen wurde. Mit ffmpeg können Sie dies tun, indem Sie die -movflags +faststart
Option während der Codierung hinzufügen (um ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4
nur eine vorhandene Datei zu reparieren). Oder verwenden Sie das qt-faststart
Programm (oder eine Implementierung davon) für eine vorhandene Datei.
Die beste Option wäre, den CDN-Ansatz mit dem adaptiven HTTP-Streaming (DASH oder HLS) zu koppeln. Anstelle einer einfachen HTML5-Videoquelle, die höchstwahrscheinlich eine große Datei ist, würden Sie einzelne Videostücke streamen. Dies führt zu schnelleren Startzeiten und einem besseren Umgang mit unterschiedlichen Client-Bandbreiten. Es ist jedoch viel komplizierter, von Grund auf neu einzurichten. Es gibt natürlich Anbieter, die Streaming-Lösungen vom Typ DASH anbieten, bei denen Sie lediglich das Quellvideo zur Verfügung stellen müssen, und Sie können ihren Player auf Ihrer Website implementieren. Sie kümmern sich um die Kodierung und CDN-Sachen. Einige Beispiele sind Bitmovin, Encoding.com oder Wowza.