Ich lese ein dynamicly m3u8 HLS Playlist erzeugt von ffmpegoutputing HLS m3u8 Segment TS PHP-FPM Nginx
im Grunde die Datei aussehen
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:3
#EXTINF:11.000000,
2_3.ts
#EXTINF:8.000000,
2_4.ts
#EXTINF:11.000000,
2_5.ts
#EXTINF:11.000000,
2_6.ts
#EXTINF:8.000000,
2_7.ts
#EXTINF:11.000000,
2_8.ts
Ich versuche, einen Weg zu finden, zu begrenzen, die Verbindung zu einer einzelnen Verbindung. Ich habe eine Tabelle namens Anschluss: es die Stream-ID + Benutzer-ID speichern + DATE_START & date_end & Status
Sobald ein Benutzer beobachten den Strom begann es neue Daten hinzufügen: Beispiel
(StreamID : (2) , userID : (3) , Date_Start : Now() , Date_end : Null , status : ON)
, sobald er die geschlossen Anschluss ich möchte die date_end mit Now() & Status
Environnement auf OFF aktualisieren: Nginx, PHP-FPM & FFmpeg
i the register_shutdown_function('shutdown')
bin mit dem letzten Update schreiben
aber das Problem ist, wenn die Playlist des Shutdown gespielt wird oft Duo der m3u8 enthält sechs Segmente ausgeführt, die jeweils einige Sekunden die Abschaltung oft wieder ausgeführt wird (Duo die Chunk-Liste aktualisiert), während ich noch nicht die Verbindung geschlossen habe.
Ich suche einen Weg, um die Playlist zu handhaben als eine Verbindung keeped werden, so dass die Funktion Abschaltung wird nur dann ausgeführt, wenn der Client die Verbindung abbrechen und nicht während der Playlist
Grüße
Salut aergistral, halte ich tatsächlich die Benutzer-ID Benutzer Statistiken zu halten, wenn Ende & doppelte Verbindung, ich nicht genau verstehen, was meinst du mit: „Wenn eine Wiedergabeliste nicht für T Zeit neu geladen wurde betrachten, es ist eine neue Ansicht session“ Ich kann keinen guten Weg finden, das zu lösen – Krasic
hier ist ein Beispiel für die Ausgabe (Typ + PID + Zeit + Segment), http://pastebin.com/9mkuNjDz – Krasic
Wenn Sie mehrere gleichzeitige Benutzer haben, die die gleiche Wiedergabeliste gleichzeitig anfordern Zeit woher weißt du welches ist was? Sie benötigen eine Möglichkeit, jede Anfrage/jeden Benutzer zu verfolgen. Wenn die Wiedergabeliste für eine längere Zeit als "TARGETDURATION" angefragt wird, können Sie davon ausgehen, dass die Sitzung beendet wurde, und Sie müssen das "Date_end" mit dem Zeitpunkt der letzten Anfrage aktualisieren. – aergistal