Wie erstellen Sie dynamische m3u8 durch einfügen der URL im browser?
Ich möchte erstellen Sie eine dynamische m3u8 wenn ein PHP-Skript aufgerufen wird. Ich will nicht, um das Ergebnis zu speichern m3u8 auf dem server, sondern ich möchte push es im browser-so es ist zum Download. Könnte jemand mir zeigen, wie ich kann, um diese Aufgabe?
Beispiel PHP-Skript aufgerufen werden:
http://www.asite.com/makeM3u8.php?videoId=1234
Herunterladbare dynamische m3u8 Struktur:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=900000
http://someserver/channelNameBandwith900000.m3u8?session=3495732948523984eriuwehiurweirew
Ich nehme an, Sie wollen zum laden einer M3U-Datei ist dynamisch, konvertieren Sie es in Echtzeit, und senden, um den Benutzer zum herunterladen? Das könnte möglich sein. Was für eine Art von Datei-Größen sind Ihre input-Dateien? Was die Forschung haben Sie getan, so weit, dieses problem zu lösen?
InformationsquelleAutor user1788736 | 2014-08-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entscheiden eine Reihe von Dingen, bevor das erste Skript:
1.- Wo sind die .ts-und .aac-Dateien gespeichert, was ist Ihr Schutz und ist PHP in der Lage, erstellen Sie eine URL, die auf Sie zugreifen?
2.- Speichern Sie die raw-m3u8-Informationen (Ziel, Dauer, extinf und Namen für jedes segment). Datenbank ist schneller als das Parsen vorhandener Dateien in diesem Fall.
3.- Wenn der Umgang mit multibitrate, müssen Sie ein Skript, das generiert auch den master m3u8 die Punkte aller anderen.
That being said, hier ist die Lösung kam ich mit und habe mit für eine Weile ohne Probleme. Zwei Dinge aber, ich AWS S3 für die Speicherung und konvertieren Sie vorhandene Videodateien mit ffmpeg. Es ist ein ziemlich langer Prozess ist - vielleicht übertrieben für das, was Sie wollen - aber es funktioniert.
Teil 1.- Die Kodierung der Dateien Das system erhält MP4-videos und konvertiert Sie in die erforderlichen Formate.
Teil 2.- Die Segmentierung der Dateien Das system nimmt die konvertierten MP4s und Segmente.
Teil 3.- Die Speicherung der Daten Das system analysiert die generierten m3u8s und speichert die relevanten Informationen in einer Datenbank.
Tabelle:
Funktion Parse:
Die Ergebnisse aus den einzelnen Dateien gespeichert sind und in den entsprechenden Spalten für jede video-Größe wie der json-kodierten string, beachten Sie, dass ich die Speicherung der minimalen Informationen, die möglich sind, um zu minimieren, Lesen Sie mal und machen Sie die dB so klein wie möglich. In diesem Schritt wird die Geschwindigkeit nicht wirklich wichtig ist, da dies geschieht vor dem servieren wird die Datei.
Teil 4.- Servieren Sie die Datei liest das system Die Datenbank und dient der korrekten Datei für jede Größe.
Dafür habe ich ein m3u8.domain.com die Einrichtung sendet alle *.m3u8-Dateien an den PHP-interpreter, so dass ich nicht die Mühe mit dem umbenennen, so dient dies ausschließlich die folgenden Dateien:
Jeder ist seine eigene Datei, weil einige Spieler Probleme hatten, wenn die unterschiedlichen Bandbreite m3u8s alle den gleichen Namen hatten.
Den Meister.m3u8:
Es, Abfragen der Datenbank für die verschiedenen Auflösungen und echos die richtige url für jeden. Wenn es nicht existiert (set {} in meinem Schema), es wird nicht durchgeleitet.
Dann jede res.m3u8 stellt die folgenden (wenn genannt):
Gibt es ein paar Dinge, die hier passiert, so lassen Sie mich erklären:
ein.- Zuerst das Skript prüft, ob eine gültige session, wenn man nicht existiert, es dient bis eine m3u8 für eine kleine 10-Sekunden-video sagt: "Sie haben keine Berechtigung zum anzeigen dieser".
b.- Wenn die session checkt, fragt es die Datenbank und bekommt alle erforderlichen JSONs. Es fragt auch eine weitere Tabelle wo ich die Dauer der Datei in Bestellung zum Auffüllen des TARGETDURATION string-und die auch zur Berechnung der Lebensdauer des secure S3-URL zu generieren. Ich habe die Lebensdauer der URL auf 1,5 x die Länge des Videos, es funktioniert für mich, Ihre Erfahrungen können unterschiedlich sein.
c.- Sie iteriert dann über jede Gruppe aus der Datenbank, echos der EXTINF und erzeugt eine sichere URL für jeden.
InformationsquelleAutor hdezela