soporte Contactar con asistencia técnica | estado del sistema Estado del Sistema
Contenido de la página

    Características: Dynamic Ingest API

    En este tema, aprenderá a usar el Dynamic Ingest API para ingerir videos para que puedan serliverojo 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 Dynamic Delivery sistema de ingesta. Aquellos con cuentas más antiguas todavía 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:

    Las 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
    & 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 el CMS API para crear un objeto de video en el Video Cloud sistema y obtener su id
    2. Llama a el 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": "https://host/master.mp4"
          },
          "profile": "DynamicDeliverIngestProfile",
          "callbacks": [
            "https://mydomain.com/di-callbacks.php"
          ]
        }
        

    <b>Notas</b>

    • 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.
    • El 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": "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 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": "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 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)

    Dinámico Delivery Video 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 24 Oct 2020