Transmisión fluida de Microsoft

Microsoft Smooth Streaming (MSS) es una colección de tecnologías que hacen posible transmitir contenido de video y audio a plataformas como Silverlight de Microsoft, XBox 360, Windows Phone 7 y algunas plataformas de TV conectadas. Smooth Streaming con múltiples tasas de bits permite la transmisión adaptativa de contenido para compensar sobre la marcha los cambios en el ancho de banda disponible durante la reproducción.

Resumen

Para aprovechar MSS, su video y audio deben codificarse en un formato segmentado especial, además de generar manifiestos de cliente y servidor que contengan información sobre los archivos. Zencoder puede generar todos los archivos necesarios para Smooth Streaming de una o varias tasas de bits.

Solicitud básica

Crear un video de transmisión fluida es fácil de hacer con Zencoder. Solo hay algunas opciones que deben configurarse para crear los archivos necesarios para una codificación de tasa de bits única.

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

Las partes relevantes de la solicitud de API anterior son las opciones "tipo", "formato" y "url".

  • "tipo" debe estar "segmentado"
  • "formato" debe ser "ismo"
  • "url" debe tener la extensión "ism"

En el lenguaje de Smooth Streaming, un archivo "ism" es un manifiesto del servidor de Smooth Streaming. Sin embargo, este no es el único archivo que se generará. En el mismo directorio que el archivo "ism", también crearemos un archivo "ismc", también conocido como manifiesto de cliente de Smooth Streaming, y un archivo "ismv", que es el video codificado.

Solicitud completa

Crear un trabajo de transmisión suave de múltiples bits con Zencoder no requiere mucho más en su solicitud de API, solo salidas para las diferentes velocidades de transferencia más una lista de reproducción que hace referencia a ellas.

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

Las salidas individuales de Smooth Streaming de tasa de bits única (etiquetadas como "salida baja", "salida media" y "salida alta") son similares a la salida de la solicitud de ejemplo anterior y se pueden reproducir solas si es necesario. La diferencia importante es la primera salida, que crea la lista de reproducción que hace referencia a los videos. El dispositivo que reproduce el video utilizará esta lista de reproducción para determinar el archivo apropiado para cargar según el ancho de banda disponible.

Las partes relevantes a tener en cuenta para la lista de reproducción son:

  • type debe ser "lista de reproducción"
  • format debería ser "ismo"
  • url debe tener una extensión de "ismo"
  • streams debe ser una matriz de objetos JSON, cada uno con las claves "fuente" y "ruta"
    • source debe ser la etiqueta de la salida que se utilizará para la secuencia dada
    • path debe ser la ruta relativa al archivo "ismv" o "isma" de la salida "fuente", ya que será servido por su servidor

Las listas de reproducción para Smooth Streaming de múltiples bits y sus videos deben crearse dentro de un solo trabajo de Zencoder, no se pueden crear en trabajos separados o después de que los videos se hayan creado en otros trabajos. Se requiere cierta información de los videos y sus manifiestos para generar los manifiestos de Smooth Streaming de múltiples tasas de bits. Esto incluye los manifiestos de cliente de las salidas Smooth Streaming de tasa de bits única junto con la ruta relativa a los archivos de audio o video de tasa de bits única, ya que serán servidos desde su destino final. Una vez que las salidas segmentadas han terminado de transcodificarse, sus manifiestos de cliente se utilizan para generar los manifiestos de transmisión suave de múltiples tasas de bits y colocarlos en la ubicación especificada por "url".

Requisitos

Se requiere un servidor IIS Smooth Streaming para entregar archivos Smooth Streaming a los reproductores. Esta guía sobre comenzando con IIS Smooth Streaming es un buen lugar para comenzar a configurar un servidor IIS Smooth Streaming.