Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Abspeichern des aktuellen Standes

...

Das vorliegende Dokument beschreibt die Integration der Streamingmessung für verschiedene Anwendungsfälle.

...

Konzeption der Messung

...

Um einen Streaming-Inhalt messen zu können, wird ein Sensor beim Client benötigt, der misst welche Bereiche auf einen Stream vom User abgespielt werden.
Diese Bereiche können durch Zeitintervalle in Sekunden definiert werden - vorausgesetzt der entsprechende Player oder die abspielende Instanz kann über eine Methode die aktuelle Position in Sekunden auf dem Stream liefern. Durch regelmäßiges Auslesen der aktuellen Position ist es somit möglich alle Aktionen auf einen Stream zu tracken. Spulvorgänge können identifiziert werden, wenn es unerwartete Sprünge beim Auslesen der Position gibt und Stop- bzw. Pause-Aktionen werden dadurch identifiziert, dass sich die aktuelle Position nicht mehr verändert.

Das folgende Diagramm zeigt die Architektur der API:

Gliffy
sizeL
namesensor
alignleft
version5
Info

Die Einfachheit der API und des Konzeptes führt zu den folgenden Features:

  • Es lässt sich jeder beliebige Streaming-Content messen, der in der Lage ist die aktuelle Position in Sekunden auf dem Stream zu liefern.
  • Die API lässt sich sehr leicht auf andere Programmiersprachen portieren.
  • Es wird technologieübergreifend das gleiche Verfahren verwendet, wodurch gleicher Streaming-Content auch auf unterschiedlichen Frameworks bzw. Technologien vergleichbar wird.

Grundsätzliche Benutzung der API (programmiersprachenunabhängig)

In den folgenden Erläuterungen wird die Javascript-Syntax verwendet. Die Vorgehensweise ist aber bei jeder verwendeten Programmiersprache im Grundsatz die gleiche.

Code Block
borderColorgrey
bgColor#eeeeee
langjavascript
borderStylesolid

// 1. Instantiere das API-Objekt
var sensors:SpringStreams = new SpringStreams("angebotsname");

// 2. Ein Description-Objekt für den Streaming-Content anlegen.
var desc:Object = {
   "stream":"videos/mystream",
   "duration":600 // in Sekunden
};

// 3. Das Content-Objekt zur Verfügung stellen
var content:Object = ...; // Irgendein Objekt, dass in der Lage ist die aktuelle Position in Sekunden zu liefern

// 4. Den Content mit dem Description-Objekt auf dem Sensor registieren.
var stream:Stream = sensors.track(content, desc);

// 5. Optional: Weitere Streams messen - auch parallel
var stream2:Stream = sensors.track(content2, desc2);
// etc.

// 6. Optional: Stoppen einer Messung
stream.stop();

// 7. Optional: Stoppen aller Messungen
sensors.unload();

Erläuterungen:

zu 1: Instantiiere das API-Objekt

  • Wichtig ist, dass der korrekte Angebotesname angegeben wird. Dieser Angebotsname wird vom Betreiber der Streaming-Lösung vergeben.
    Code Block
    borderColorgrey
    bgColor#eeeeee
    langjavascript
    borderStylesolid
    
    var sensors:SpringStreams = new SpringStreams("angebotsname");
    
  • Eine Instanz des Objektes SpringStreams ist im Framework nur einmalig anzulegen. Ab da können ein oder mehrere Streams der track-Methode zur Messung übergeben werden.

zu 2: Ein Description-Objekt für den Streaming-Content anlegen

  • Mit dem Description-Objekt übergibt man der API nähere Informationen zum Streaming-Content. Hierbei sind folgende Variablen erlaubt bzw. werden vom Messsystem verstanden.

    Variable

    Optional

    Beschreibung

    stream

    Nein

    Der Names des Streams, der optimalerweise als Hierarchie übergeben wird. z.B. path/to/stream/name

    dur

    Nein

    Die Duration muss angegeben werden. Im Falle von Livestreams kann sie weggelassen werden oder wird mit dem Wert 0 geliefert

    ct

    Ja

    Hier kann ein beliebiger Wert verwendet werden, der ein Aussage über den ContentType macht. Beispielweise könnte der Wert ad angegeben werden, um den Stream als Werbung zu markieren.

    sx

    Ja

    Die Breite (width) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    sy

    Ja

    Die Höhe (height) des Streams - sofern es sich um ein Film handelt. Im Falle eines Radiostreams, können die Variablen weggelassen werden oder werden mit dem Wert 0 geliefert.

    Einbau über Javascript für beliebige Player (auch proprietäre)

Vor Benutzung der springStreams-Funktionen muss die Javascript-Bibiliothek geladen werden. Dies geschieht über den folgenden Script-Tag:

...