Microsoft Reibungsloses Streaming

Microsoft Smooth Streaming (MSS) ist eine Sammlung von Technologien, mit denen Video- und Audioinhalte auf Plattformen wie Silverlight von Microsoft, XBox 360, Windows Phone 7 und einige verbundene TV-Plattformen gestreamt werden können. Smooth Streaming mit mehreren Bitraten ermöglicht das adaptive Streaming von Inhalten, um Änderungen der verfügbaren Bandbreite während der Wiedergabe sofort auszugleichen.

Überblick

Um MSS nutzen zu können, müssen Video und Audio in einem speziellen segmentierten Format codiert und Client- und Server-Manifeste mit Informationen zu den Dateien generiert werden. Zencoder kann alle erforderlichen Dateien für Smooth Streaming mit einer oder mehreren Bitraten generieren.

Grundlegende Anfrage

Das Erstellen eines reibungslosen Streaming-Videos ist mit Zencoder ganz einfach. Es müssen nur wenige Optionen festgelegt werden, um die erforderlichen Dateien für eine Codierung mit einer Bitrate zu erstellen.

{
    "api_key": "asdf1234",
    "input": "s3://my-input-bucket/input-file.mp4",
    "outputs": [
    {
        "audio_bitrate": 56,
        "audio_sample_rate": 22050,
        "url": "s3://my-bucket/medium/file.ism",
        "decoder_bitrate_cap": 900,
        "decoder_buffer_size": 2400,
        "max_frame_rate": 30,
        "segment_seconds": 2,
        "type": "segmented",
        "video_bitrate": 600,
        "width": 400,
        "format": "ism"
    }
    ]
}

Die relevanten Teile der obigen API-Anforderung sind die Optionen "Typ", "Format" und "URL".

  • "Typ" sollte "segmentiert" sein
  • "Format" sollte "ism" sein
  • "url" sollte eine Erweiterung von "ism" haben

Im Smooth Streaming-Sprachgebrauch ist eine "ism" -Datei ein Smooth Streaming-Servermanifest. Dies ist jedoch nicht die einzige Datei, die generiert wird. Im selben Verzeichnis wie die "ism" -Datei erstellen wir auch eine "ismc" -Datei, die auch als Smooth Streaming-Client-Manifest bezeichnet wird, und eine "ismv" -Datei, bei der es sich um das codierte Video handelt.

Vollständige Anfrage

Das Erstellen eines Smooth-Streaming-Jobs mit mehreren Bitraten mit Zencoder erfordert nicht viel mehr in Ihrer API-Anfrage, sondern nur Ausgaben für die verschiedenen Übertragungsgeschwindigkeiten sowie eine Wiedergabeliste, die auf diese verweist.

{
    "api_key": "asdf1234",
    "input": "s3://my-input-bucket/input-file.mp4",
    "outputs": [
    {
        "type": "playlist",
        "format": "ism",
        "url": "s3://my-output-bucket/file.ism",
        "streams": [
        {
            "source": "low-output",
            "path": "low/file.ismv"
        },
        {
            "source": "medium-output",
            "path": "medium/file.ismv"
        },
        {
            "source": "high-output",
            "path": "high/file.ismv"
        }
        ]
    },
    {
        "label": "low-output",
        "audio_bitrate": 56,
        "audio_sample_rate": 22050,
        "url": "s3://my-bucket/low/file.ism",
        "decoder_bitrate_cap": 165,
        "decoder_buffer_size": 440,
        "max_frame_rate": 30,
        "segment_seconds": 2,
        "public": 1,
        "type": "segmented",
        "video_bitrate": 110,
        "width": 320,
        "format": "ism"
    },
    {
        "label": "medium-output",
        "audio_bitrate": 56,
        "audio_sample_rate": 22050,
        "url": "s3://my-bucket/medium/file.ism",
        "decoder_bitrate_cap": 600,
        "decoder_buffer_size": 1600,
        "max_frame_rate": 30,
        "segment_seconds": 2,
        "public": 1,
        "type": "segmented",
        "video_bitrate": 400,
        "width": 400,
        "format": "ism"
    },
    {
        "label": "high-output",
        "audio_bitrate": 56,
        "audio_sample_rate": 22050,
        "url": "s3://my-bucket/high/file.ism",
        "decoder_bitrate_cap": 900,
        "decoder_buffer_size": 2400,
        "max_frame_rate": 30,
        "segment_seconds": 2,
        "public": 1,
        "type": "segmented",
        "video_bitrate": 600,
        "width": 400,
        "format": "ism"
    }
    ]
}

Die einzelnen Smooth-Streaming-Ausgänge mit einer Bitrate (mit "Low-Output", "Medium-Output" und "High-Output" bezeichnet) ähneln den Ausgängen in der vorherigen Beispielanforderung und können bei Bedarf einzeln abgespielt werden. Der wichtige Unterschied ist die erste Ausgabe, mit der die Wiedergabeliste erstellt wird, die auf die Videos verweist. Das Gerät, das das Video abspielt, verwendet diese Wiedergabeliste, um basierend auf der verfügbaren Bandbreite die entsprechende Datei zu ermitteln, die geladen werden soll.

Die relevanten Teile, die für die Wiedergabeliste zu beachten sind, sind:

  • type sollte "Wiedergabeliste" sein
  • format sollte "ism" sein
  • url sollte eine Erweiterung von "ism" haben
  • streams sollte ein Array von JSON-Objekten sein, die jeweils die Schlüssel "source" und "path" haben.
    • source sollte die Bezeichnung der Ausgabe sein, die für den angegebenen Stream verwendet werden soll
    • path sollte der relative Pfad zur "ismv" - oder "isma" -Datei der "Quell" -Ausgabe sein, da diese von Ihrem Server bereitgestellt wird

Wiedergabelisten für Smooth Streaming mit mehreren Bitraten und ihre Videos müssen in einem einzigen Zencoder-Job erstellt werden. Sie können nicht in separaten Jobs oder nachdem die Videos in anderen Jobs erstellt wurden, erstellt werden. Bestimmte Informationen aus den Videos und ihren Manifesten sind erforderlich, um die Smooth Streaming-Manifeste mit mehreren Bitraten zu generieren. Dies schließt die Client-Manifeste aus den Smooth Streaming-Ausgaben mit einer Bitrate zusammen mit dem relativen Pfad zu den Video- oder Audiodateien mit einer Bitrate ein, die von ihrem endgültigen Ziel aus bereitgestellt werden. Sobald die segmentierten Ausgaben die Transcodierung abgeschlossen haben, werden ihre Client-Manifeste verwendet, um die Smooth-Streaming-Manifeste mit mehreren Bitraten zu generieren und an der durch "url" angegebenen Stelle zu platzieren.

Voraussetzungen

Ein IIS Smooth Streaming-Server ist erforderlich, um den Spielern Smooth Streaming-Dateien bereitzustellen. Diese Anleitung auf Erste Schritte mit IIS Smooth Streaming Dies ist ein guter Ort, um einen IIS Smooth Streaming-Server einzurichten.