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.
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".
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.
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" seinformat
sollte "ism" seinurl
sollte eine Erweiterung von "ism" habenstreams
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 sollpath
sollte der relative Pfad zur "ismv" - oder "isma" -Datei der "Quell" -Ausgabe sein, da diese von Ihrem Server bereitgestellt wirdWiedergabelisten 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.
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.