soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema

Características: Dynamic Ingest API

En este tema, aprenderá a usar el Dynamic Ingest API para ingerir videos para que puedan ser entregados a través de Dynamic Delivery. Tenga en cuenta que esta guía es para la mayoría Video Cloud cuentas que están en el sistema de ingesta Dynamic Delivery. Aquellos con cuentas antiguas aún en el sistema de ingesta heredado deben ir a Dynamic Ingest API Legado en su lugar.

Introducción

Brightcove's Dynamic Ingest API se basa en la funcionalidad donde los archivos de origen de video se descargan desde la ubicación de almacenamiento del cliente y se crean las representaciones específicas de los archivos de origen. (También hay una opción para cargue sus archivos fuente a una ubicación temporal donde Dynamic Ingest puede acceder a ellos.) La plataforma está centrada en la nube, distribuida globalmente y basada en prácticas modernas para ofrecer la mejor consistencia y velocidad.

Ver también el Referencia de la API.

Visión general del flujo de trabajo

Se utilizan varios sistemas / tecnologías en la transcodificación y el almacenamiento general de los medios. Son:

  • CMS API: Crea un objeto de video para usar en la API DI
  • Zencoder: Transcodifica el video creando múltiples interpretaciones
  • Amazon S3: Mueve el maestro y las entregas al almacenamiento, según la configuración del perfil
  • Catálogo: Almacena la información requerida asociada con el video

Después de la transcodificación inicial, tiene las siguientes acciones que puede realizar en los medios:

Operaciones

Cuando usa la DI API, realizará diferentes operaciones, como leer un perfil de ingreso y escribir información de ingreso en su cuenta. La siguiente es una lista completa de las operaciones requeridas para las tareas DI:

    • video-cloud/video/create
    • video-cloud/video/read
    • video-cloud/video/update
    • video-cloud/ingest-profiles/profile/read
    • video-cloud/ingest-profiles/account/read
    • video-cloud/ingest-profiles/account/write
    • video-cloud/ingest-profiles/profile/write
    • video-cloud/upload-urls/read

Para obtener las credenciales del cliente, use el Studio herramientas de administración o vea uno de los siguientes documentos:

Mejores prácticas

Vea API dinámica de ingesta: mejores prácticas.

Ubicaciones de origen válidas

Ingestión basada en tracción

Dynamic Ingest puede extraer archivos de video de origen de: HTTP / HTTPS, S3 y FTP, con o sin autenticación

Ejemplos:

  • http://example.com/path/to/input.avi
  • https://dl.dropboxusercontent.com/u/3641457/Bird_Titmouse.mp4
  • s3: //my-bucket/video.mp4
  • ftp: //server/file.mp4

Notas sobre S3

Si sus videos están en un contenedor S3 protegido, consulte Uso de Dynamic Ingest con S3 para obtener detalles sobre cómo configurar permisos para Dynamic Ingest para acceder a sus archivos.

Notas sobre FTP

Si sus videos están en un servidor FTP protegido, use el método estándar para pasar el nombre de usuario y la contraseña en la URL, como esto:

    ftp://username:password@server/file.mp4

Carga del archivo fuente

También puede cargar sus archivos en una ubicación segura y temporal desde donde Dynamic Ingest pueda extraerlos. Para más detalles, ver Carga de archivo de origen.

Caracteres especiales

Si está proporcionando una URL para Video Cloud para recuperar tus videos, y estás enviando credenciales como parte de la URL, necesitas porcentaje de codificación ciertos caracteres especiales reservados:

Caracteres especiales
Personaje Codificado en porcentaje
] % 5B
[ % 5D
? % 3F
/ % 2F
< % 3C
~ % 7E
# 23%
` % 6D
! 21%
@ 40%
$ 24%
% 25%
^ % 5E
y 26%
* % 2A
( 28%
) 29%
+ % 2B
= % 3D
} % 7D
| % 7C
: % 3A
" 22%
; % 3B
' 27%
, % 2C
> % 3E
{ % 7B
espacio 20%

Por ejemplo:

    
        /* unencoded */
        ftp://user@example.com:pass!word@example.com/path/to/input.mp3
    
        /* encoded */
        ftp://user%40example.com:pass%21word@example.com/path/to/input.mp3
      

Nombres de archivos de origen

Todas las URL de entrada deben codificarse adecuadamente según la URL RFC 3986 cuando lo envían a Brightcove. Esto significa que cualquier personajes reservados que se encuentran en la ruta de la url están codificados en porcentaje (los espacios están codificados para %20), y los caracteres reservados encontrados en la consulta de la url están codificados en porcentaje (espacios codificados para + or %20 y + siendo codificado para %2B).

A pre-firmado S3 (v2 contiene Firma , Expira y AWSAccessKeyId y v4 contiene X-Amz-Algoritmo, Credencial X-Amz, X-Amz-Date, X-Amz-Expires, X-Amz-SignedHeaders y X-Amz-Signature) o GCS (contiene Firma , Expira y GoogleAccessId) url ya debería estar codificado correctamente y puede ser utilizado como es.

Activos de muestra

Brightcove Learning Services proporciona algunos recursos de muestra que puede usar para experimentar al comenzar con Dynamic Ingest. Estos recursos incluyen videos cortos, imágenes y subtítulos WebVTT en varios idiomas:

Ingerir perfil

Se requieren perfiles de ingesta especiales para crear videos de Entrega Dinámica. Encontrarás un par de perfiles de ingesta estándar en su cuenta cuando Dynamic Delivery está habilitado, y estos son recomendados.

También puede agregar un perfil de Entrega dinámica personalizado a sus perfiles de ingreso en la sección Admin de Studio - ver Crear perfiles de ingestión para entrega dinámica para más detalles.

Muestra del perfil de Entrega dinámica

A continuación se muestra un ejemplo del perfil de Entrega dinámica que puede usar para comenzar. Todo lo que tienes que hacer es reemplazar YOUR_ACCOUNT_ID con su ID de cuenta, y luego puede copiar y pegar el perfil en el editor de perfil de ingestión.

    {
      "name": "DynamicDeliveryIngestProfile",
      "description": "Dynamic Delivery ingest profile.",
      "account_id": "YOUR_ACCOUNT_ID",
      "digital_master": {
        "rendition": "passthrough",
        "distribute": false
      },
      "dynamic_origin": {
        "renditions": [
          "default/audio64",
          "default/audio96",
          "default/audio128",
          "default/video450",
          "default/video700",
          "default/video900",
          "default/video1200",
          "default/video1700",
          "default/video2000"
        ],
        "images": [
          {
            "label": "poster",
            "height": 720,
            "width": 1280
          },
          {
            "label": "thumbnail",
            "height": 90,
            "width": 160
          }
        ]
      }
    }
    

Para obtener más información sobre los perfiles de entrega dinámicos estándar y las entregas ver Perfiles de ingesta estándar para entrega dinámica

Ingerir videos

Se requieren dos solicitudes de API para ingerir videos:

  1. Llama a CMS API para crear un objeto de video en el Video Cloud sistema y obtener su id
  2. Llama a Dynamic Ingest API para proporcionar la URL del archivo fuente de video y especificar otros archivos y configuraciones para la ingesta según sea necesario

Un conjunto de muestra de solicitudes básicas se vería así:

CMS API solicitar

Método HTTP
PUBLICAR
URL de solicitud
https://cms.api.brightcove.com/v1/accounts/{account_id}/videos
Solicitar cuerpo
    {
    "name": "My First Dynamic Delivery Video"
    }
    
    

Los datos de respuesta incluirán el video id , que se usa en la próxima solicitud.

Solicitud API de ingestión

Método HTTP
PUBLICAR
URL de solicitud
https://ingest.api.brightcove.com/v1/accounts/{account_id}/videos/{video_id}/ingest-requests
Solicitar cuerpo
    {
      "master": {
        "url": "http://host/master.mp4"
      },
      "profile": "DynamicDeliverIngestProfile",
      "callbacks": [
        "http://mydomain.com/di-callbacks.php"
      ]
    }
    

Notas

  • Si no incluye el profile campo, se usará ese perfil predeterminado de la cuenta. Recomendamos usar la cuenta predeterminada, a menos que necesite usar diferentes perfiles para diferentes tipos de videos. Asegúrese de establecer el valor predeterminado de la cuenta para el perfil que (con mayor frecuencia) desea usar.
  • La callbacks el campo es opcional, pero le recomendamos encarecidamente que lo utilice como la mejor manera de seguir el progreso de los trabajos de ingesta. Ver indicadas a continuación para más sobre notificaciones

Visualización de las concesiones

Puede ver las representaciones de su video yendo a Módulo multimedia en Studio.

Para ver las propiedades completas de las representaciones, puede usar CMS API solicitud detallada a continuación.

Para recuperar URL para la reproducción, puede usar Playback API solicitud detallada a continuación.

Reemplazar un video

Para reemplazar un video con una nueva versión o un nuevo conjunto de copias, el Dynamic Ingest API La llamada es exactamente la misma que para Ingerir nuevos videos - La única diferencia es que no es necesario realizar una llamada previa al CMS API para crear el objeto de video en el Video Cloud Sistema y obtener una identificación para ello. Si el archivo de video de origen en la URL especificada es el mismo que se ingirió originalmente, simplemente obtendrá un nuevo conjunto de copias. Si el archivo fuente es nuevo, reemplazará el video existente. Todos los videos se podrán reproducir con las copias existentes hasta que se complete la retranscodificación.

ver el muestra de trabajo aquí.

Retranscodificar un video

Si eliges archivar un maestro cuando ingieres el video a través de Dynamic Ingest API o el módulo de carga de Studio, entonces también puede volver a codificar el video desde el master. Nuevamente, la URL para la solicitud de ingesta será la misma, pero el cuerpo de la solicitud tendrá lo siguiente:

    // request
    POST /v1/accounts/{account_id}/videos/{video_id}/ingest-requests
    // request body
    {
      "master": { "use_archived_master": true },
      "profile": "multi-platform-extended-static"
    }
    
    

Ingesta de imagen

En lugar de capturar imágenes de pósters y miniaturas durante la transcodificación, puede incluir sus propias imágenes con la solicitud de ingreso o agregarlas en una solicitud por separado más adelante.

Ejemplo de solicitud de cuerpo

    {
      "profile": "multi-platform-extended-static",
      "poster": {
        "url": "http://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-poster.png",
        "width": 1280,
        "height": 720
      },
      "thumbnail": {
        "url": "http://bcls@solutions.brightcove.com/bcls/assets/images/great-blue-heron-thumbnail.png",
        "width": 160,
        "height": 90
      },
      "callbacks": [
        "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

Notificaciones para la ingestión de activos de imagen

A continuación hay ejemplos de las notificaciones que obtienes específicamente para la ingesta de imágenes.

    {
        "entity": "thumbnail",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
      }
      {
        "entity": "poster",
        "entityType": "ASSET",
        "version": "1",
        "action": "CREATE",
        "jobId": "0c2767c1-19ea-479d-b371-a0f5f3d154f5",
        "videoId": "5209530177001",
        "accountId": "57838016001",
        "status": "SUCCESS"
    }
    
    

Captions ingest

Los subtítulos en formato WebVTT se pueden agregar a su video con la solicitud de ingesta inicial o en una solicitud posterior.

Ejemplo de solicitud de cuerpo

    {
      "text_tracks": [
        {
          "url": "http://solutions.brightcove.com/bcls/assets/vtt/sample.vtt",
          "srclang": "en",
          "kind": "captions",
          "label": "EN",
          "default": true
        },
        {
          "url": "http://solutions.brightcove.com/bcls/assets/vtt/sample-es.vtt",
          "srclang": "es",
          "kind": "captions",
          "label": "ES",
          "default": false
        }
      ],
      "callbacks": [
        "http://solutions.brightcove.com/bcls/di-api/di-callbacks.php"
      ]
    }
    

Las pistas de texto de Sidecar se mostrarán en CMS o en las respuestas de reproducción, como lo hacen para los videos de entrega no dinámica:

    "text_tracks": [
        {
        "id": null,
        "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c",
        "srclang": "en",
        "label": "EN",
        "kind": "captions",
        "mime_type": "text/webvtt",
        "asset_id": null,
        "sources": [
          {
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt?akamai_token=exp=1479236791~acl=/media/v1/text/vtt/clear/57838016001/3de8c552-74e8-4c53-aa11-2a4375edf658/bce0d3dc-11d9-4ca4-ae1b-a39cb7b88a1c/text.vtt*~hmac=df5b4ba1ef2549a7572346dd36a761534ffafe4b8cfbdf92d89013ec2f95699c"
          }
        ],
        "in_band_metadata_track_dispatch_type": "",
        "default": false
      ]
    }
    

Las pistas de texto también aparecerán en los manifiestos HLS y DASH:

HLS

    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="es",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/de8144f4-b7d7-46ca-848f-dd2f7fa453d7/rendition.m3u8?fastly_token=NTg0ZjA5MWZfMzU1N2VhY2Y2MDA3NzkzYWM0ZjU2ZWQwNWE2NTYzMmI4MzMzMmJkZWM5Y2JmNzQ1MjRjM2QxYjI0NTYzODA5Zg%3D%3D"
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="Captions",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/1bd49b7b-df40-414f-bb05-8840624663e1/6399fcf2-cd27-4d97-ad30-e443f13563bd/rendition.m3u8?fastly_token=NTg0ZjA5MWZfYWMxYjllNDlkYzVlOTJkZWQ3ODk2YjE3MGI5NDlhYTlkOGQ1YzI5ZmI4ZjRlOWMzMzU5YmM1YzZkNTA4MTFmNQ%3D%3D"
    
    

DASH

    <AdaptationSet mimeType="text/vtt" lang="en">
      <Representation bandwidth="256" id="2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/2f4bb3fb-1a7d-4f4c-bf44-00ef0e611131.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
      </AdaptationSet>
      <AdaptationSet mimeType="text/vtt" lang="hi">
      <Representation bandwidth="256" id="f5875617-40f4-4991-bc5b-7152c6e2a93a">
      <BaseURL>https://bcbolt446c5271-a.akamaihd.net/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557/f5875617-40f4-4991-bc5b-7152c6e2a93a.vtt?akamai_token=exp=1484784452~acl=/media/v1/dash/live/clear/57838016001/785d5ddf-6672-4ece-9191-d105445b2557*~hmac=ae568ea5294280968de0a2766afd82922ea9aa83fe23a81b3379a46b8ef13284</BaseURL>
      </Representation>
    </AdaptationSet>
    
    

Notificaciones para activos de seguimiento de texto

A continuación se muestran muestras de las notificaciones específicas para la ingesta de pistas de texto.

    {
      "entity": "en-captions-EN",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    {
      "entity": "es-captions-ES",
      "entityType": "ASSET",
      "version": "1",
      "action": "CREATE",
      "jobId": "ed429284-77c9-4905-a700-4c8edb77be3e",
      "videoId": "5209530177001",
      "accountId": "57838016001",
      "status": "SUCCESS"
    }
    
    

Muestra player con pistas de texto (inglés y español)

Video de entrega dinámica Player

Leyendas de Sidecar en una aplicación de iOS

Entrega dinámica Lejos de sidecar
Entrega dinámica Lejos de sidecar

Recuperar interpretaciones dinámicas

Para recuperar información sobre las representaciones dinámicas de un video, envíe una solicitud GET a:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/video_id/assets/dynamic_renditions
    
    

Muestra de respuesta

    [
      {
        "rendition_id": "default/audio128",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 506818,
        "created_at": "2016-11-14T15:05:56.209214859Z",
        "updated_at": "2016-11-14T15:05:56.209214859Z",
        "encoding_rate": 125,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio64",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 261129,
        "created_at": "2016-11-14T15:05:53.926747456Z",
        "updated_at": "2016-11-14T15:05:53.926747456Z",
        "encoding_rate": 62,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/audio96",
        "frame_height": null,
        "frame_width": null,
        "media_type": "audio",
        "size": 384568,
        "created_at": "2016-11-14T15:05:59.023381448Z",
        "updated_at": "2016-11-14T15:05:59.023381448Z",
        "encoding_rate": 94,
        "duration": 31488,
        "audio_configuration": "L_R",
        "language": "en"
      },
      {
        "rendition_id": "default/video1200",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 4761241,
        "created_at": "2016-11-14T15:06:10.410020728Z",
        "updated_at": "2016-11-14T15:06:10.410020728Z",
        "encoding_rate": 1206,
        "duration": 31465
      },
      {
        "rendition_id": "default/video1700",
        "frame_height": 540,
        "frame_width": 960,
        "media_type": "video",
        "size": 6712422,
        "created_at": "2016-11-14T15:06:15.593063021Z",
        "updated_at": "2016-11-14T15:06:15.593063021Z",
        "encoding_rate": 1703,
        "duration": 31465
      },
      {
        "rendition_id": "default/video2500",
        "frame_height": 720,
        "frame_width": 1280,
        "media_type": "video",
        "size": 9795721,
        "created_at": "2016-11-14T15:06:12.148783841Z",
        "updated_at": "2016-11-14T15:06:12.148783841Z",
        "encoding_rate": 2486,
        "duration": 31465
      },
      {
        "rendition_id": "default/video4000",
        "frame_height": 1080,
        "frame_width": 1920,
        "media_type": "video",
        "size": 15718943,
        "created_at": "2016-11-14T15:06:15.463012005Z",
        "updated_at": "2016-11-14T15:06:15.463012005Z",
        "encoding_rate": 3992,
        "duration": 31465
      },
      {
        "rendition_id": "default/video450",
        "frame_height": 270,
        "frame_width": 480,
        "media_type": "video",
        "size": 1784858,
        "created_at": "2016-11-14T15:06:20.719400854Z",
        "updated_at": "2016-11-14T15:06:20.719400854Z",
        "encoding_rate": 451,
        "duration": 31465
      },
      {
        "rendition_id": "default/video700",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 2746520,
        "created_at": "2016-11-14T15:06:10.918331816Z",
        "updated_at": "2016-11-14T15:06:10.918331816Z",
        "encoding_rate": 695,
        "duration": 31465
      },
      {
        "rendition_id": "default/video900",
        "frame_height": 360,
        "frame_width": 640,
        "media_type": "video",
        "size": 3561912,
        "created_at": "2016-11-14T15:06:17.295871425Z",
        "updated_at": "2016-11-14T15:06:17.295871425Z",
        "encoding_rate": 902,
        "duration": 31465
      }
    ]
    

Recuperar URL para la reproducción

Para recuperar información sobre las representaciones dinámicas de un video, envíe una solicitud GET a:

    https://edge.api.brightcove.com/playback/v1/accounts/account_id/videos/video_id
    
    

Muestra de respuesta

    {
      "description": null,
      "poster_sources": [
      {
        "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg"
      }
      ],
      "tags": [
        "dd-static"
      ],
      "cue_points": [],
      "custom_fields": {},
      "account_id": "57838016001",
      "sources": [
        {
          "ext_x_version": "4",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOGU5Njg0NGU1OWQ3NjI3ZDhmY2FhZTVmNGE0YzI1MWM1NjMyNTZkNzMzZmExMzRkN2ZmYzU0YWU5NzUyZTM2YQ%3D%3D"
        },
        {
          "ext_x_version": "5",
          "type": "application/x-mpegURL",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/hls/v5/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/10s/master.m3u8?fastly_token=NTk1YmE0ZmZfOTBkOThhYmQ5MWM0MmQwYmQwYTM4MGEzMjAzZTgyNDVlMDYzYzNhMzQ1ZWQ3MTMyMzVmM2Q1YjM2N2VlMjM0Yg%3D%3D"
        },
        {
          "type": "application/dash+xml",
          "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/2s/manifest.mpd?fastly_token=NTk1YmE0ZmZfYzQyOWJiOTEzMGJmNGIyMjM1NmMwMzZmNGZkZjlkYjEzMzNmNzFlYmQxODg0Y2YzZDk3ZTljNzVhODg1YzRjMQ%3D%3D",
          "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
        },
        {
          "avg_bitrate": 2129000,
          "width": 1280,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/high.mp4*~hmac=5880698556297bbe2f2f43ac8904c659c61fb9510db1a9bb106037eaea393339",
          "size": 13242064,
          "height": 720,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        },
        {
          "avg_bitrate": 574000,
          "width": 480,
          "src": "https://bcbolt446c5271-a.akamaihd.net/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4?akamai_token=exp=1499178239~acl=/media/v1/pmp4/static/clear/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/mid.mp4*~hmac=75e51439623a41b93d2a234c25683e76d43656f97a9dfb8efe61a5342d5ff2da",
          "size": 3586929,
          "height": 270,
          "duration": 49690,
          "container": "MP4",
          "codec": "H264"
        }
      ],
      "name": "Canada_Geese_Family",
      "reference_id": null,
      "long_description": null,
      "duration": 49633,
      "economics": "AD_SUPPORTED",
      "published_at": "2017-06-05T11:20:52.412Z",
      "text_tracks": [],
      "updated_at": "2017-06-05T12:06:55.121Z",
      "thumbnail": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg",
      "poster": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/1280x720/24s816ms/match/image.jpg",
      "offline_enabled": false,
      "link": null,
      "id": "5459968909001",
      "ad_keys": null,
      "thumbnail_sources": [
        {
          "src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/853641cb-d66b-4f08-bb02-8489b5fba897/main/160x90/24s816ms/match/image.jpg"
        }
      ],
      "created_at": "2017-06-05T11:20:52.412Z"
    }
    
    

DRM

DRM es compatible, pero funciona de manera diferente que para la ingesta de video ordinario. Tú lo haces no necesidad de especificar el empaque en el perfil de ingesta. En cambio, el empaquetado es automático en función de la configuración de DRM para su cuenta. Póngase en contacto con el soporte de Brightcove para establecer los valores predeterminados para el empaquetado DRM de tus videos.

Para más detalles, consulte Ingerir contenido con DRM.

Interpretaciones con marca de agua

Interpretaciones con marca de agua son compatibles. Si necesita agregar marcas de agua a algunos o todos sus videos, comuníquese con el Soporte de Brightcove.

Tenga en cuenta que se pueden agregar representaciones con marca de agua para los perfiles de Dynamic Delivery estático, pero no para perfiles de Context Aware Encoding (CAE).

Estado de ingreso

Puede recibir información sobre su procesamiento de ingesta de entrega dinámica suscribiéndose a devoluciones de llamada y / o consultando una API de estado para obtener el estado del trabajo.

Devoluciones de llamada

En su solicitud de ingreso, puede especificar una o más URL de devolución de llamada para recibir notificaciones de los resultados del proceso de ingreso. Las URL que especifique deben ser para aplicaciones que puedan aceptar solicitudes POST. Las notificaciones se enviarán en formato JSON.

Los detalles de recibir e interpretar notificaciones se pueden encontrar en Notificaciones

API de estado

También puede obtener el estado actual de la ingesta de trabajos utilizando la API de estado. Los mensajes de estado solo están disponibles para ingerir trabajos enviados en los últimos días de 7.

Endpoints

Todos los mensajes de estado para un video
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs
    
    
Ejemplo
    https://cms.api.brightcove.com/v1/accounts/57838016001/videos/5128433746001/ingest_jobs
    
    
Mensaje de estado para un trabajo en particular
    https://cms.api.brightcove.com/v1/accounts/:account_id/videos/:video_id/ingest_jobs/:job_id
    
    
Ejemplo

Respuestas

A continuación se muestra una respuesta de muestra para un trabajo que se está procesando actualmente.

    {
    "id": "7a196557-56ba-4218-ada5-e107ed554555",
    "state": "processing",
    "account_id": "57838016001",
    "video_id": "5128433746001",
    "error_code": null,
    "error_message": null,
    "updated_at": "2016-09-16T16:51:46.313Z",
    "started_at": "2016-09-16T16:51:22.258Z"
    }
    
    

Los elementos más importantes aquí son:

  • state : el estado del trabajo ( processing | publishing | finished | failed - cuando este trabajo esté completo y el video listo para jugar, el state se mostrarán finished )
  • error_code y error_message : para un trabajo exitoso, estos serán null ; para trabajos fallidos, obtendrá un código de error y un mensaje explicativo

Aquí hay un ejemplo de un mensaje de estado para un trabajo fallido para comparación:

    {
    "id": "bc9dfb58-d502-43d5-97e4-41f3dcd44265",
    "state": "failed",
    "account_id": "57838016001",
    "video_id": "5128710227001",
    "error_code": "NoMediaError",
    "error_message": "Audio-only output was requested on a file that only contains video.",
    "updated_at": "2016-09-16T20:30:58.016Z",
    "started_at": "2016-09-16T20:29:14.139Z"
    }
    
    

Contexto consciente de la codificación

Context Aware Encoding (CAE) es una tecnología desarrollada por Brightcove para analizar la fuente de video durante la transcodificación y generar un conjunto óptimo de representaciones y tasas de bits basadas en la complejidad del video y un conjunto de parámetros de límite proporcionados (número mínimo de representaciones, tasa de bits máxima , etc.)

Para aprender a usar perfiles CAE, consulte Contexto consciente de la codificación.

Múltiples pistas de audio

Las cuentas configuradas para Entrega Dinámica se pueden habilitar para permitir múltiples pistas de audio para videos.

La capacidad de asociar múltiples pistas de audio con un solo título puede ser útil en un par de escenarios clave:

  • Reproducción del mismo video en diferentes idiomas para un alcance más amplio a nivel mundial
  • Proporcionar audio con descripciones para los discapacitados visuales

Para detalles sobre el uso de esta característica, consulte Varias pistas de audio.

Código de muestra

Los servicios de aprendizaje proporcionan varias aplicaciones de ejemplo que proporcionan una interfaz web y envían Dynamic Ingest API solicitudes a través de un proxy PHP. Ver las aplicaciones de muestra.

Además, los siguientes repositorios de GitHub contienen código de ejemplo en Java, Python y C #. Tenga en cuenta que este código de ejemplo es No se admite por Brightcove:

Limitaciones

  • Para tipos de video segmentados (HLS y DASH) algunos players no manejan el caso donde las longitudes de transmisión de audio y video difieren en más de la duración de un segmento. Si encuentra esto, intente usar una longitud de segmento más corta.

Página actualizada por última vez el 12 jun 2020