soporte Contactar con Soporte | Estadoestado del sistema del sistema
Contenido de la página

    Resumen: Dynamic Ingest API

    En este tema, aprenderá cómo utilizar el para Dynamic Ingest API ingerir vídeos para que se puedan entregar a través de Entrega dinámica. Tenga en cuenta que esta guía es para la mayoría de las cuentas de Video Cloud que se encuentran en el sistema de ingesta de entrega dinámica. Aquellos que tengan cuentas más antiguas aún en el sistema de ingesta heredado deberían ir a Dynamic Ingest API Legacy en su lugar.

    Introducción

    Brightcove Dynamic Ingest API se basa en la funcionalidad en la que los archivos de origen de vídeo se descargan desde la ubicación de almacenamiento del cliente y se crean copias especificadas de los archivos de origen. (También hay una opción para cargar los archivos fuente en una ubicación temporal donde Dynamic Ingest pueda acceder a ellos). La plataforma está centrada en la nube, está distribuida globalmente y se basa en prácticas modernas para ofrecer la mejor consistencia y velocidad de su clase.

    Consulte también la Referencia de API.

    Descripción general del flujo

    Una serie de sistemas/tecnologías se utilizan en la transcodificación general y el almacenamiento de medios. A saber:

    • API de CMS: Crea un objeto de vídeo para su uso en la API DI
    • Zencoder: Transcodifica el vídeo creando varias copias
    • Amazon S3: Mueve el maestro y las copias al almacenamiento, en función de la configuración del perfil
    • Catálogo: Almacena la información necesaria asociada con el vídeo

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

    Operaciones

    Cuando utilice la API DI, realizará diferentes operaciones, como leer un perfil de ingesta y escribir información de ingesta en su cuenta. A continuación se muestra una lista completa de operaciones necesarias 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 credenciales de cliente, utilice las herramientas de administración de Studio o consulte uno de los siguientes documentos:

    Mejores prácticas

    Consulte API de ingesta dinámica: Prácticas recomendadas.

    Ubicaciones de origen válidas

    Ingestión basada en extracción

    La ingesta dinámica puede extraer archivos de vídeo 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 los vídeos están en un depósito protegido de S3, consulte Uso de ingesta dinámica con S3 para obtener información detallada sobre cómo configurar permisos para la ingesta dinámica para acceder a los archivos.

    Notas sobre FTP

    Si los vídeos están en un servidor FTP protegido, utilice el método estándar para pasar el nombre de usuario y la contraseña en la URL, como este:

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

    Carga del archivo de origen

    También puedes cargar tus archivos en una ubicación segura y temporal desde la que Dynamic Ingest puede extraerlos. Para obtener más información, consulte Carga de archivo de origen.

    Caracteres especiales

    Si proporciona una URL para que Video Cloud recupere sus vídeos y envía credenciales como parte de la URL, debe codificar por ciento ciertos caracteres especiales reservados:

    Caracteres Especiales
    Carácter Porcentaje codificado
    ] %5B
    [ %5D
    ? %3F
    / %2F
    < %3C
    ~ %7E
    # %23
    ` %6D
    ! %21
    @ %40
    $ %24
    % %25
    ^ %5E
    & %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 archivo de origen

    Todas las URL de entrada deben codificarse correctamente según RFC 3986 cuando se envíen a Brightcove. Esto significa que los caracteres reservados que se encuentren en la ruta de acceso de la url están codificados por ciento (espacios a los que se codifican), y los caracteres reservados encontrados en la consulta de la url están codificados por ciento (espacios que se codifican en o, y se codifican en).%20+%20+%2B

    Un S3 prefirmado (v2 contiene firma , caduca y AWSAccessKeyID , y v4 contiene el algoritmo X-Amz, X-Amz-Credential, X-Amz-Date, X-Amz-Expires, X-AMZ-SignedHeaders y X-AMZ-Signature) o GCS(contiene firma, caduca y GoogleAccessid) url ya debe estar codificada correctamente y se puede utilizar tal cual.

    Activos de muestra

    Brightcove Learning Services proporciona algunos recursos de ejemplo con los que puede experimentar al comenzar a utilizar la ingesta dinámica. Estos activos incluyen vídeos cortos, imágenes y subtítulos de WebVTT en varios idiomas:

    Perfil de ingestión

    Se requieren perfiles especiales de ingesta para crear vídeos de entrega dinámica. Encontrarás un par de perfiles de ingesta estándar en tu cuenta cuando esté habilitada la opción Entrega dinámica, que se recomiendan.

    También puedes agregar un perfil de entrega dinámica personalizado a tus perfiles de ingesta en la sección Admin de Studio. Consulte Creación de perfiles de ingesta para entrega dinámica para obtener más detalles.

    Ejemplo de perfil de entrega dinámica

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

        {
          "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ámica estándar y las copias, consulte Perfiles de ingesta estándar para entrega dinámica

    Vídeos de ingestión

    Hay dos solicitudes de API necesarias para ingerir vídeos:

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

    Un conjunto de ejemplo de solicitudes básicas tendría el siguiente aspecto:

    Solicitud de API de CMS

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

    Los datos de respuesta incluirán el vídeo, que se utiliza en la siguiente solicitud.id

    Solicitud de API de ingesta

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

    Notas

    • Si no incluye el profile campo, se utilizará el perfil predeterminado de la cuenta. Te recomendamos que utilices el valor predeterminado de la cuenta, a menos que necesites utilizar perfiles diferentes para diferentes tipos de vídeos. Asegúrese de establecer el valor predeterminado de la cuenta en el perfil que (con mayor frecuencia) desea usar.
    • El callbacks campo es opcional, pero recomendamos encarecidamente que lo utilice como la mejor manera de realizar un seguimiento del progreso de los trabajos de ingesta. Consulte a continuación para obtener más información sobre las notificaciones.

    Visualización de copias

    Para ver las copias de su vídeo, vaya al Módulo multimedia de Studio.

    Para ver las propiedades completas de las copias, puede utilizar la solicitud de API de CMS que se detalla a continuación.

    Para recuperar direcciones URL para la reproducción, puede utilizar la solicitud de la API de reproducción que se detalla a continuación.

    Reemplazar un vídeo

    Para reemplazar un vídeo con una nueva versión o un nuevo conjunto de copias, la llamada es exactamente la misma que sería para ingerir vídeos nuevos: la única diferencia es que no es necesario realizar una llamada previa a la para crear el objeto de vídeo en el sistema de Video Cloud y obtener una identificación para él.Dynamic Ingest APICMS API Si el archivo de vídeo de origen en la URL especificada es el mismo que se ingirió originalmente, simplemente obtendrá un nuevo conjunto de copias. Si el archivo de origen es nuevo, reemplazará el vídeo existente. Todos los vídeos permanecerán reproducibles con las representaciones existentes hasta que se complete la retranscodificación.

    Vea la muestra de trabajo aquí.

    Retranscodificación de un vídeo

    Si eligió archivar un maestro al ingerir el vídeo a través del módulo Studio Upload Dynamic Ingest API o Studio, también puede volver a transcodificar el vídeo desde el maestro. 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 imágenes

    En lugar de tener imágenes de póster y miniatura capturadas durante la transcodificación, puede incluir sus propias imágenes con la solicitud de ingesta o añadirlas en una solicitud separada más adelante.

    Cuerpo de solicitud de muestra

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

    Notificaciones para la ingestión de activos de imagen

    A continuación se muestran ejemplos de las notificaciones que recibe específicamente para ingerir 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"
        }
        
        

    Ingesta de leyendas

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

    Cuerpo de solicitud de muestra

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

    Las pistas de texto de Sidecar aparecerán en las respuestas de CMS o Reproducción, como lo hacen para los vídeos 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"
        
        

    PIZCA

        <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 ejemplos de las notificaciones específicas para la ingestión de seguimiento 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"
        }
        
        

    Reproductor de muestras con pistas de texto (inglés y español)

    Reproductor de vídeo de entrega dinámica

    Subtítulos de Sidecar en una aplicación iOS

    Subtítulos de Sidecar de entrega dinámica
    Subtítulos de Sidecar de entrega dinámica

    Recuperar copias dinámicas

    Para recuperar información acerca de las copias dinámicas de un vídeo, envíe una solicitud GET a:

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

    Respuesta de muestra

        [
          {
            "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 direcciones URL para la reproducción

    Para recuperar información acerca de las copias dinámicas de un vídeo, envíe una solicitud GET a:

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

    Respuesta de muestra

        {
          "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 ordinaria. No es necesario especificar el embalaje en el perfil de ingesta. En su lugar, el empaquetado es automático en función de la configuración DRM de tu cuenta. Póngase en contacto con el Soporte técnico de Brightcove para establecer los valores predeterminados para el empaquetado DRM de sus vídeos.

    Para obtener más información, consulte Ingerir contenido con DRM.

    Rendiciones con marca de agua

    Se admitencopias con marca de agua. Si desea añadir marcas de agua a algunos o a todos sus vídeos, póngase en contacto con el servicio de asistencia de Brightcove.

    Tenga en cuenta que se pueden agregar copias con marca de agua para perfiles de entrega dinámica estáticos, pero no para perfiles de codificación consciente de contexto (CAE).

    Estado de ingesta

    Puede recibir información sobre el 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.

    Retrollamadas

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

    Los detalles de recepción e interpretación de notificaciones se pueden encontrar en Notificaciones

    API de estado

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

    Endpoints

    Todos los mensajes de estado de un vídeo
        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 ejemplo 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 reproducir, el state será 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

    A continuación se muestra un ejemplo de un mensaje de estado para un trabajo fallido para la 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"
        }
        
        

    Codificación consciente del contexto

    Context Aware Encoding (CAE) es una tecnología desarrollada por Brightcove para analizar el vídeo fuente durante la transcodificación y generar un conjunto óptimo de renditions y bitrates en función de la complejidad del vídeo y un conjunto de parámetros delimitadores proporcionados (número mínimo de copias, tasa de bits máxima, etc.).

    Para obtener información sobre cómo utilizar perfiles CAE, consulte Codificación consciente de contexto.

    Varias pistas de audio

    Las cuentas configuradas para Entrega dinámica se pueden habilitar para permitir varias pistas de audio para vídeos.

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

    • Reproducción del mismo vídeo en diferentes idiomas para un alcance más amplio a nivel mundial 
    • Proporcionar audio con descripciones para las personas con problemas visuales

    Para obtener más información sobre el uso de esta función, consulte Múltiples pistas de audio.

    Ejemplos de código

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

    Además, los siguientes repositorios de GitHub contienen código de ejemplo en Java, Python y C #; tenga en cuenta que Brightcove no admite este código de ejemplo:

    Limitaciones

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

    Última actualización de la página el 24 oct 2020