Streaming fluide Microsoft

Microsoft Smooth Streaming (MSS) est un ensemble de technologies qui permettent de diffuser du contenu vidéo et audio sur des plates-formes telles que Microsoft Silverlight, la Xbox360, Windows Phone 7 et certaines plates-formes TV connectées. La diffusion fluide multibinaire permet la diffusion adaptative du contenu afin de compenser à la volée les modifications de la bande passante disponible pendant la lecture.

Aperçu

Pour tirer parti de MSS, votre vidéo et votre audio doivent être encodés dans un format segmenté spécial, et des manifestes client et serveur doivent être générés contenant des informations sur les fichiers. Zencoder peut générer tous les fichiers nécessaires pour le Smooth Streaming à un et plusieurs débits.

Demande de base

Créer une vidéo Smooth Streaming est facile à faire avec Zencoder. Seules quelques options doivent être définies pour créer les fichiers nécessaires pour un encodage à un seul débit.

{
    "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"
    }
    ]
}

Les parties pertinentes de la demande d'API ci-dessus sont les options "type", "format" et "url".

  • "type" doit être "segmenté"
  • "format" doit être "ism"
  • "url" doit avoir une extension "ism"

Dans le langage de Smooth Streaming, un fichier "ism" est un manifeste de serveur Smooth Streaming. Cependant, ce n'est pas le seul fichier qui sera généré. Dans le même répertoire que le fichier "ism", nous créerons également un fichier "ismc", autrement connu sous le nom de manifeste client Smooth Streaming, et un fichier "ismv", qui est la vidéo encodée.

Demande complète

La création d'un travail Smooth Streaming multi-débit avec Zencoder ne nécessite pas beaucoup plus dans votre demande d'API, juste des sorties pour les différentes vitesses de transfert plus une liste de lecture qui les référence.

{
    "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"
    }
    ]
}

Les sorties Smooth Streaming individuelles à débit unique (étiquetées « faible sortie », « sortie moyenne » et « haute sortie ») sont similaires à la sortie de l'exemple précédent, et peuvent être jouées seules si nécessaire. La différence importante est la première sortie, qui crée la playlist qui fait référence aux vidéos. L'appareil lisant la vidéo utilisera cette liste de lecture pour déterminer le fichier approprié à charger en fonction de la bande passante disponible.

Les parties pertinentes à noter pour la liste de lecture sont les suivantes :

  • type devrait être "playlist"
  • format devrait être "ism"
  • url devrait avoir une extension de "ism"
  • streams doit être un tableau d'objets JSON qui ont chacun les clés « source » et « chemin »
    • source devrait être l'étiquette de la sortie à utiliser pour le flux donné
    • path doit être le chemin relatif vers le fichier "ismv" ou "isma" de la sortie "source" car il sera servi par votre serveur

Les listes de lecture pour Smooth Streaming multi-débit et leurs vidéos doivent être créées dans un seul travail Zencoder, elles ne peuvent pas être créées dans des travaux séparés ou après que les vidéos ont été créées dans d'autres travaux. Certaines informations des vidéos et de leurs manifestes sont nécessaires pour générer les manifestes Smooth Streaming à plusieurs débits. Cela inclut les manifestes du client à partir des sorties Smooth Streaming à débit unique ainsi que le chemin relatif vers les fichiers vidéo ou audio à débit unique lorsqu'ils seront servis à partir de leur destination finale. Une fois que les sorties segmentées ont terminé le transcodage, leurs manifestes client sont utilisés pour générer les manifestes Smooth Streaming à plusieurs débits et les placer à l'emplacement spécifié par "url".

Exigences

Un serveur IIS Smooth Streaming est nécessaire pour fournir des fichiers Smooth Streaming aux joueurs. Ce guide sur Premiers pas avec IIS Smooth Streaming est un bon endroit pour commencer à configurer un serveur IIS Smooth Streaming.