Configuración de transmisión segmentada

Este tema contiene detalles para la configuración de codificación relacionada con la transmisión segmentada.

Resumen

Zencoder admite varias formas de transmisión adaptativa y segmentada.

Cada formato de transmisión utiliza un subconjunto diferente de las opciones de API que se enumeran a continuación. Consulte las guías de cada tipo de transmisión para obtener más información.

NOTAS

  • Un trabajo debe tener al menos una salida estándar o segmentada; la creación de trabajos con solo salidas de listas de reproducción no funcionará.
  • Las salidas de listas de reproducción ignorarán la mayoría de las opciones de salida, excepto url base_url, filename, streams, public, y type.
  • Si una salida segmentada se carga en un almacenamiento temporal, se cargará como Archivo ZIP.

streaming_delivery_format

streaming_delivery_format:String

Versiones de API: V2

Padre: outputs

Valores válidos: pizca

Tipos de trabajo compatibles: VOD

Ejemplo: pizca

Descripción:

Establece el formato / protocolo para una salida que se entregará mediante una configuración de transmisión específica, incluidos los manifiestos necesarios, las estructuras de directorio u otros paquetes.

Para las salidas de 'guión', esto también cambiará el segmento_segundos predeterminado a 2, aplicará intervalos de fotogramas clave fijos, incluirá un manifiesto MPD y creará una estructura de directorio con archivos de inicialización y segmento.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "streaming_delivery_format": "dash"
    }
  ]
}

Ver también: streaming_delivery_profile

streaming_delivery_profile

streaming_delivery_profile:String

Versiones de API: V2

Padre: outputs

Defecto: En Vivo

Valores válidos: en vivo, hbbtv_1.5, on_demand

Tipos de trabajo compatibles: VOD

Ejemplo: En Vivo

Descripción:

Establece el perfil del formato de transmisión de transmisión, asegurando que las opciones se seleccionen para que sean compatibles con el perfil. Las opciones válidas dependen del seleccionado streaming_delivery_format.

Para dash salidas, los perfiles admitidos actualmente son:

  • en vivo - Establecerá el DASH profile a "urn: mpeg: dash: profile: isoff-live: 2011" y use una sola SegmentTemplate para cada AdaptationSet. Para DRM, utilizará un IV de 8 bytes y para PlayReady utilizará la versión 1.1, incluido un átomo PSSH en los medios.
  • hbbtv_1.5: establecerá el DASH profile a "urn: hbbtv: dash: profile: isoff-live: 2012" e incluya los atributos requeridos para las representaciones de audio y video. Para DRM, utilizará un IV de 16 bytes y para PlayReady utilizará la versión 1.0, excluidos los átomos PSSH.
  • on_demand: establecerá el DASH profile a "urn: mpeg: dash: profile: isoff-on-demand: 2011" y codifique los medios como archivos fragmentados individuales para cada flujo en lugar de segmentarlos. De lo contrario, lo mismo que el perfil en vivo.
{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "streaming_delivery_format": "dash",
      "streaming_delivery_profile": "hbbtv_1.5"
    }
  ]
}

Ver también: streaming_delivery_format

playlist_format

playlist_format:String

Versiones de API: V2

Padre: outputs

Valores válidos: dash, mpd, hls, m3u, m3u8, ism, mss, highwinds

Tipos de trabajo compatibles: VOD

Ejemplo: pizca

Descripción:

Establece el formato para la salida de una lista de reproducción (manifiesto de interpretación).


  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "playlist_format": "dash"
    }
  ]
}

segment_seconds

segment_seconds:Float

Versiones de API: V2

Padre: outputs

Defecto: 10

Valores válidos: Números entre 1,0 y 3600,0; los valores inferiores a 2,0 solo se permiten cuando byte_range_segmenting está habilitado. Debido a que se ha descubierto que los segmentos muy cortos causan problemas de reproducción, el segmento final puede ser más largo que el valor especificado.

Tipos de trabajo compatibles: VOD

Ejemplo: 8

Descripción:

Establece la duración máxima de cada segmento en una salida segmentada.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "segment_seconds": 8
    }
  ]
}

alternate_audio

alternate_audio:Hash

Versiones de API: V2

Padre: outputs

Valores válidos: Hash de grupos de audio alternativos, cada uno de los cuales es una matriz de hashes de reproducción de transmisión de audio

Tipos de trabajo compatibles: VOD

Descripción:

Proporciona un conjunto de transmisiones de audio alternativas para HLS listas de reproducción. Requiere max_hls_protocol_version tener 4 o más.

Esta opción insertará EXT-X-MEDIA etiquetas en la lista de reproducción. Si name no está configurado, entonces se generará un nombre basado en el dado language.

Opciones válidas para interpretaciones de audio alternativas

  • language: El código ISO 639 para el idioma de la pista de audio, como "en", "es" o "zh".
  • name (Opcional): El nombre del grupo de audio alternativo. Si no se establece el nombre, se utilizará de forma predeterminada el nombre del idioma.
  • path (Opcional): Una ruta opcional a la lista de reproducción M3U8 para esta reproducción de audio. Si no se establece la ruta, este flujo de audio alternativo describe el audio contenido en el flujo de origen.
  • source (Opcional): La etiqueta en una salida de soporte del mismo trabajo. Esto se puede usar para configurar el códec para las representaciones que usan este flujo de audio.
{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "alternate_audio": {
        "custom_audio_group": [
          {
            "source": "english-audio",
            "path": "alternate-audio-en.m3u8",
            "language": "en"
          },
          {
            "source": "french-audio",
            "path": "alternate-audio-fr.m3u8",
            "language": "fr"
          }
        ],
        "secondary_audio_group": {
          "path": "path/to/secondary-audio-group.m3u8",
          "language": "en",
          "name": "Secondary English Audio Track",
          "source": "secondary-english-audio"
        }
      }
    }
  ]
}

streams

streams:Array

Versiones de API: V2

Padre: outputs

Valores válidos: Matriz de hashes que contienen información de transmisión de la lista de reproducción

Tipos de trabajo compatibles: VOD

Descripción:

Proporciona una lista de información de la transmisión para reformatearla como una lista de reproducción.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

path

path:String

Versiones de API: V2

Padre: outputs / arroyos

Valores válidos: Cadena que contiene una ruta absoluta o relativa a un archivo de manifiesto

Tipos de trabajo compatibles: VOD

Descripción:

Especifica la ruta a un archivo de manifiesto de flujo.

Nota: Requerido para cada transmisión para HLS , Transmisión fluida de Microsoft , y Highwinds SMIL listas de reproducción.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "http://example.com/video/high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

bandwidth

bandwidth:Integer

Versiones de API: V2

Padre: outputs / arroyos

Valores válidos: Valores enteros positivos en Kbps

Tipos de trabajo compatibles: VOD

Ejemplo: 500

Descripción:

Especifica el ancho de banda de la transmisión de una lista de reproducción. Anula el ancho de banda determinado a partir de un fuente.

Nota: Requerido para cada transmisión para HLS y Highwinds SMIL listas de reproducción, a menos que una fuente está provisto.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240
        },
        {
          "path": "high/index.m3u8",
          "bandwidth": 640
        }
      ]
    }
  ]
}

resolution

resolution:String

Versiones de API: V2

Padre: outputs / arroyos

Valores válidos: Cadena que contiene ancho y alto como: 800 x 600

Tipos de trabajo compatibles: VOD

Descripción:

Especifica la resolución de una secuencia de lista de reproducción. Anula la resolución determinada a partir de un source.


  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240,
          "resolution": "320x180"
        },
        {
          "path": "high/index.m3u8",
          "bandwidth": 640,
          "resolution": "640x360"
        }
      ]
    }
  ]
}

codecs

codecs:String

Versiones de API: V2

Padre: outputs / arroyos

Valores válidos: Cadena que contiene códecs en formato HTML5, como: mp4a.40.2

Tipos de trabajo compatibles: VOD

Descripción:

Especifica los códecs utilizados en una secuencia de lista de reproducción. Anula los códecs determinados a partir de un source.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "bandwidth": 240,
          "codecs": "avc1.42001e, mp4a.40.2"
        },
        {
          "path": "audio/index.m3u8",
          "bandwidth": 64,
          "codecs": "mp4a.40.2"
        }
      ]
    }
  ]
}

audio

audio:String

Versiones de API: V2

Padre: outputs / arroyos

Valores válidos: Cadena que contiene el nombre del ID de GRUPO de audio que se utilizará. Este valor debe haber sido definido como un audio_alternativo agrupamiento. La códecs La configuración debe reflejar todos los códecs del grupo de audio alternativo.

Tipos de trabajo compatibles: VOD

Descripción:

Especifica una pista de audio alternativa para la lista de reproducción.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "alternate_audio": {
        "ac3_audio": {
          "path": "path/to/ac3-audio.m3u8",
          "language": "en",
          "default": true,
          "source": "ac3-audio-rendition"
        },
        "source_audio": {
          "language": "en",
          "default": true
        }
      },
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition",
          "audio": "ac3_audio"
        },
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition",
          "audio": "source_audio"
        }
      ]
    }
  ]
}

segment_image_url

segment_image_url:String (URL)

Versiones de API: V2

Padre: outputs

Tipos de trabajo compatibles: VOD

Descripción:

Al crear segmentos de solo audio, utilice el archivo de imagen especificado como miniatura para cada segmento.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "segment_image_url": "http://example.com/thumb.png"
    }
  ]
}

segment_video_snapshots

segment_video_snapshots:Boolean

Versiones de API: V2

Padre: outputs

Defecto: falso

Valores válidos: verdadero o falso

Tipos de trabajo compatibles: VOD

Ejemplo: cierto

Descripción:

Al segmentar un archivo de video en segmentos de solo audio, tome instantáneas del video como miniaturas para cada segmento.

Esta opción no tiene ningún efecto si se establece segmento_imagen_file.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "segment_video_snapshots": true
    }
  ]
}

Ver también: segmento_url_imagen

source

source:String

Versiones de API: V2

Padre: outputs / arroyos

Tipos de trabajo compatibles: VOD

Descripción:

Hace referencia a una etiqueta en una salida multimedia del mismo trabajo, para completar los datos correspondientes en la lista de reproducción.

Para HLS , los banda ancha , códecs , y resolución los valores se infieren de la fuente de forma predeterminada. Alguna banda ancha , códecs , o resolución los valores especificados para la misma secuencia anularán los valores inferidos.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

max_hls_protocol_version

max_hls_protocol_version:Integer

Versiones de API: V2

Padre: outputs / arroyos

Defecto: 5 para cifrado AES de muestra; de lo contrario, 2.

Valores válidos: 2-5

Tipos de trabajo compatibles: VOD

Ejemplo: 4

Descripción:

Establece el máximo HLS versión de protocolo a utilizar. Las funciones especiales se utilizarán según estén disponibles.

Esta opción debe ser mayor o igual a hls_protocol_version cuando se proporciona.

Nota: Solo se aplica a Transmisión en directo HTTP salidas.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "path": "file-240k.m3u8",
      "bandwidth": 240,
      "max_hls_protocol_version": 4
    },
    {
      "type": "segmented",
      "path": "file-64k.m3u8",
      "bandwidth": 64,
      "max_hls_protocol_version": 4
    },
    {
         "filename":"playlist.m3u8",
         "public":1,
         "max_hls_protocol_version":4,
         "streams":[
            {
               "path":"file-240k.m3u8"
            },
            {
               "path":"file-64k.m3u8"
            }
         ],
         "type":"playlist"
    }
  ]
}

Ver también: hls_protocol_version

hls_protocol_version

hls_protocol_version:Integer

Versiones de API: V2

Padre: outputs / arroyos

Defecto: Automático según max_hls_protocol_version configuración

Valores válidos: 2-5

Tipos de trabajo compatibles: VOD

Ejemplo: 3

Descripción:

Establece la versión del protocolo HLS que se utilizará. Las funciones especiales se utilizarán según estén disponibles.

Nota: Solo se aplica a Transmisión en directo HTTP salidas.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "hls_protocol_version": 3
    }
  ]
}

Ver también: max_hls_protocol_version

hls_optimized_ts

hls_optimized_ts:Boolean

Versiones de API: V2

Padre: outputs / arroyos

Defecto: true

Valores válidos: true o false

Tipos de trabajo compatibles: VOD

Descripción:

Optimiza los archivos de segmento TS para HTTP Live Streaming en dispositivos iOS.

Nota: Solo se aplica a HTTP Live Streaming salidas.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "hls_optimized_ts": false
    }
  ]
}

prepare_for_segmenting

prepare_for_segmenting:String or Array

Versiones de API: V2

Padre: outputs

Valores válidos: hls, mss, dash

Tipos de trabajo compatibles: VOD

Ejemplo: hls,dash

Descripción:

Si planea transmitir una salida a HLS , MSS y / o DASH después de codificarlo con subtítulos en MP4, establezca esta opción en verdadero para incluir subtítulos y tiempo de fotogramas clave para la segmentación. Esto permite que las versiones segmentadas incluyan subtítulos compatibles con HLS a pesar de la transmutación y permite la segmentación a intervalos de tiempo consistentes.

Especifique el tipo de salida (s) segmentada que esta salida se transmuxará más tarde para crear, de modo que Zencoder pueda preparar los subtítulos y los fotogramas clave según sea necesario.

Nota: Actualmente, no se pueden agregar subtítulos a HLS salidas al transmutar.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "prepare_for_segmenting": "hls,dash"
    }
  ]
}

Ver también: caption_url y skip_captions

smil-base-url

smil_base_url:String

Versiones de API: V2

Padre: outputs

Tipos de trabajo compatibles: VOD

Ejemplo: rtmp: //127.0.0.1/base/path/

Descripción:

Esto agregará la etiqueta <meta base = "smil_base_url_value" /> a la sección <head> de una lista de reproducción SMIL.

Este ejemplo generará una lista de reproducción que se ve así:

  <smil>
    <head>
      <meta base = "rtmp: //123.456.123.123/path/to/videos/" />
    </head>
    <body>
      <switch>
        <video src = "mp4: test.mp4" system-bitrate = "500000" />
      </switch>
    </body>
  </smil>

Nota: solo funciona en una lista de reproducción de salida de tipo, con un formato de viento fuerte.

{
  "input": "s3://zencodertesting/test.mov",
  "output": [
    {
      "filename": "test.mp4",
      "video_bitrate": 400,
      "audio_bitrate": 96
    },
    {
      "type": "playlist",
      "format": "highwinds",
      "smil_base_url": "rtmp://123.456.123.123/path/to/videos/",
      "url": "ftp://my.server/playlist.smil",
      "streams": [
        {
          "path": "test.mp4",
          "bandwidth": 500
        }
      ]
    }
  ]
}

byte_range_segmenting

byte_range_segmenting:Boolean

Versiones de API: V2

Padre: outputs

Defecto: false

Valores válidos: true o false

Tipos de trabajo compatibles: VOD

Ejemplo: cierto

Descripción:

Configura HLS segmentar para producir un solo archivo de salida en lugar de un archivo por segmento.

Requiere max_hls_protocol_version o hls_protocol_version establecido en 4 o superior.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "byte_range_segmenting": true
    }
  ]
}

Ver también: max_hls_protocol_version

generate_keyframe_manifest

generate_keyframe_manifest:Boolean

Versiones de API: V2

Padre: outputs

Defecto: false

Valores válidos: true o false

Tipos de trabajo compatibles: VOD

Ejemplo: true

Descripción:

Genera un HLS manifiesto de fotograma clave (I-frame) que es necesario para la reproducción de avance rápido y retroceso.

El nombre de archivo de manifiesto de fotogramas clave predeterminado es el mismo que el nombre de archivo de la lista de reproducción, pero con '-iframe-index' agregado (por lo que para una lista de reproducción 'master.m3u8', el manifiesto de fotogramas clave sería 'master-iframe-index.m3u8'). El nombre del archivo de manifiesto de fotogramas clave se puede anular con keyframe_manifest_filename.

Habilitado por defecto si max_hls_protocol_version o hls_protocol_version se establece en 4 o más.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "generate_keyframe_manifest": true,
      "keyframe_manifest_filename": "my_iframe_index.m3u8"
    }
  ]
}

Ver también: keyframe_manifest_filename

keyframe_manifest_filename

keyframe_manifest_filename:String

Versiones de API: V2

Padre: outputs

Defecto: iframe_index.m3u8

Tipos de trabajo compatibles: VOD

Ejemplo: my_iframe_index.m3u8

Descripción:

A menos que se especifique, el nombre de archivo utilizado para el manifiesto de fotogramas clave es el mismo que el nombre de archivo de la lista de reproducción, pero con '-iframe-index' agregado. Por ejemplo, para la lista de reproducción 'master.m3u8', el manifiesto del fotograma clave sería 'master-iframe-index.m3u8'.

Esta opción requiere que generate_keyframe_manifest es cierto, o hls_protocol_version es 4 o mayor.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "segmented",
      "format": "ts",
      "generate_keyframe_manifest": true,
      "keyframe_manifest_filename": "my_iframe_index.m3u8"
    }
  ]
}

Ver también: generate_keyframe_manifest

allow_skipped_sources

allow_skipped_sources:Boolean

Versiones de API: V2

Padre: outputs

Defecto: false

Valores válidos: true o false

Tipos de trabajo compatibles: VOD

Ejemplo: true

Descripción:

Al generar la lista de reproducción, en lugar de fallar la salida si se omitió alguna de las transmisiones a las que se hace referencia (como parte de la salidas condicionales funcionalidad), simplemente déjelos fuera de la lista de reproducción.

Para ignorar correctamente las fuentes omitidas, las transmisiones de la lista de reproducción deben tener un source definido.

{
  "input": "s3://zencodertesting/test.mov",
  "outputs": [
    {
      "type": "playlist",
      "allow_skipped_sources": true,
      "streams": [
        {
          "path": "low/index.m3u8",
          "source": "low-hls-rendition"
        },
        {
          "path": "high/index.m3u8",
          "source": "high-hls-rendition"
        }
      ]
    }
  ]
}

Ver también: source