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:
- Retranscodificación: Crear nuevas copias cuando el patrón está presente (error si el patrón no está presente)
- Reemplazar: Apunte a un patrón nuevo o reemplace un patrón existente
- Ingesta de activos multimedia adicionales:
- imágenes en miniatura e imágenes de póster
- subtítulos, subtítulos o definiciones de capítulos
- Pistas de audio adicionales (si su cuenta está habilitada para varias pistas de audio)
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
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:
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:
- Vídeos
- Imágenes
- Leyendas WebVTT
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:
- Llame CMS API al para crear un objeto de vídeo en el sistema de Video Cloud y obtener su id
- 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.
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)
Subtítulos de Sidecar en una aplicación iOS

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, elstate
seráfinished
)error_code
yerror_message
: para un trabajo exitoso, estos seránnull
; 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.