Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
GetDASHStreamingSessionURL
Recupera una transmisión MPEG dinámica y adaptativa sobre HTTP (DASH) URL para la transmisión. A continuación, puede abrir el URL en un reproductor multimedia para ver el contenido de la transmisión.
StreamName
Tanto el StreamARN
parámetro como el son opcionales, pero debe especificarlos StreamName
o los StreamARN
al invocar esta API operación.
Una transmisión de vídeo de Amazon Kinesis tiene los siguientes requisitos para proporcionar datos a través MPEG de: DASH
-
La retención de datos debe ser mayor o igual que 0.
-
La pista de vídeo de cada fragmento debe contener datos privados del códec en la codificación de vídeo avanzada (AVC) para los formatos H.264 y HEVC H.265. Para obtener más información, consulte la especificación MPEG -4 /14496-15 ISO
. IEC Para obtener información sobre cómo adaptar los datos de transmisión a un formato determinado, consulte NALAdaptation Flags. -
La pista de audio (si está presente) de cada fragmento debe contener datos privados del códec en el AAC formato (AACespecificaciónISO/IEC13818-7
) o en el formato MS Wave.
El siguiente procedimiento muestra cómo usarlo DASH con Kinesis Video StreamsMPEG:
-
Llame al
GetDataEndpoint
API para obtener un punto final. A continuación, envíe lasGetDASHStreamingSessionURL
solicitudes a este punto final mediante el parámetro --endpoint-url. -
Recupera el - usando. MPEG DASH URL
GetDASHStreamingSessionURL
Kinesis Video Streams crea MPEG una DASH sesión de streaming que se utiliza para acceder al contenido de una transmisión mediante MPEG el protocolo DASH -.GetDASHStreamingSessionURL
devuelve un manifiesto autenticado URL (que incluye un token de sesión cifrado) para el DASH manifiesto de MPEG la sesión (el recurso raíz necesario para la transmisión con MPEG -DASH).nota
No compartas ni guardes este token donde una entidad no autorizada pueda acceder a él. El token proporciona acceso al contenido de la transmisión. Proteja el token con las mismas medidas que utiliza con sus AWS credenciales.
El contenido multimedia que está disponible a través del manifiesto consiste únicamente en la transmisión, el intervalo de tiempo y el formato solicitados. No hay otros datos multimedia disponibles (como fotogramas fuera de la ventana solicitada o velocidades de bits alternativas).
-
Proporcione el DASH manifiesto URL (que contiene el token de sesión cifrado) a un reproductor multimedia compatible con el MPEG DASH protocolo. MPEG Kinesis Video Streams hace que el fragmento de inicialización y los fragmentos multimedia estén disponibles a través del manifiesto. URL El fragmento de inicialización contiene los datos privados del códec de la transmisión y otros datos necesarios para configurar el decodificador y el renderizador de vídeo o audio. Los fragmentos multimedia contienen fotogramas de vídeo codificados o muestras de audio codificadas.
-
El reproductor multimedia recibe los datos autenticados URL y solicita los metadatos y los datos multimedia de la transmisión con normalidad. Cuando el reproductor multimedia solicita datos, ejecuta las siguientes acciones:
-
GetDASHManifest: Recupera un MPEG DASH manifiesto que contiene los metadatos del contenido multimedia que deseas reproducir.
-
ObtenerMP4InitFragment: recupera el fragmento de MP4 inicialización. El reproductor multimedia suele cargar el fragmento de inicialización antes de cargar cualquier fragmento multimedia. Este fragmento contiene los átomos
fytp
«» ymoov
«» y los MP4 átomos secundarios necesarios para inicializar el decodificador del reproductor multimedia.El fragmento de inicialización no corresponde a un fragmento de una transmisión de vídeo de Kinesis. Contiene solo los datos privados del códec para la transmisión y la pista correspondiente, que el reproductor multimedia necesita para decodificar los fotogramas multimedia.
-
ObtenerMP4MediaFragment: recupera fragmentos multimediaMP4. Estos fragmentos contienen los átomos «
moof
» y «mdat
» y sus MP4 átomos secundarios, que contienen los marcos multimedia del fragmento codificado y sus marcas de tiempo.importante
Los datos privados del códec (CPD) contenidos en cada fragmento contienen información de inicialización específica del códec, como la velocidad de fotogramas, la resolución y el perfil de codificación, que son necesarios para decodificar correctamente el fragmento. CPDlos cambios no se admiten durante una sesión de streaming. CPDDeben permanecer consistentes en los medios consultados.
importante
No se admite el seguimiento de los cambios. Las pistas deben permanecer consistentes en todo el contenido multimedia consultado. La transmisión fallará si los fragmentos de la transmisión pasan de tener solo vídeo a tener audio y vídeo, o si una pista de AAC audio pasa a ser una pista de audio A-Law.
Los datos recuperados con esta acción son facturables. Para obtener más información, consulte Pricing
.
-
nota
Para conocer las restricciones que se aplican a DASH las MPEG sesiones, consulte Cuotas de Kinesis Video Streams.
Puedes monitorizar la cantidad de datos que consume el reproductor multimedia supervisando la CloudWatch métrica de GetMP4MediaFragment.OutgoingBytes
Amazon. Para obtener información sobre cómo CloudWatch monitorizar Kinesis Video Streams, consulte Supervisión de Kinesis Video Streams. Para obtener información sobre precios, consulte Precios AWS
y
Para obtener más informaciónHLS, consulta la sección Transmisión en HTTP directo
importante
Si se produce un error después de invocar un API medio archivado de Kinesis Video Streams, además del código de estado y HTTP el cuerpo de la respuesta, se incluye la siguiente información:
-
x-amz-ErrorType
HTTPencabezado: contiene un tipo de error más específico además del que proporciona el código de HTTP estado. -
x-amz-RequestId
HTTPencabezado: si desea informar de un problema al AWS equipo de soporte, puede diagnosticar mejor el problema si se le proporciona el ID de solicitud.
Tanto el código de HTTP estado como el ErrorType encabezado se pueden utilizar para tomar decisiones programáticas sobre si los errores se pueden volver a cometer y en qué condiciones, así como para proporcionar información sobre las acciones que el programador del cliente podría tener que tomar para volver a intentarlo correctamente.
Sintaxis de la solicitud
POST /getDASHStreamingSessionURL HTTP/1.1
Content-type: application/json
{
"DASHFragmentSelector": {
"FragmentSelectorType": "string
",
"TimestampRange": {
"EndTimestamp": number
,
"StartTimestamp": number
}
},
"DisplayFragmentNumber": "string
",
"DisplayFragmentTimestamp": "string
",
"Expires": number
,
"MaxManifestFragmentResults": number
,
"PlaybackMode": "string
",
"StreamARN": "string
",
"StreamName": "string
"
}
URIParámetros de solicitud
La solicitud no utiliza ningún URI parámetro.
Cuerpo de la solicitud
La solicitud acepta los siguientes datos en JSON formato.
- DASHFragmentSelector
-
El intervalo de tiempo del fragmento solicitado y el origen de las marcas de tiempo.
Este parámetro es obligatorio si
PlaybackMode
esON_DEMAND
o.LIVE_REPLAY
Si lo es, este parámetro PlaybackMode es opcionalLIVE
. SiPlaybackMode
esLIVE
así, seFragmentSelectorType
puede establecer, pero no seTimestampRange
debe establecer. SiPlaybackMode
esON_DEMAND
oLIVE_REPLAY
, ambosFragmentSelectorType
yTimestampRange
deben estar configurados.Tipo: objeto DASHFragmentSelector
Obligatorio: no
- DisplayFragmentNumber
-
Los fragmentos se identifican en el archivo de manifiesto en función de su número de secuencia en la sesión. Si DisplayFragmentNumber se establece en
ALWAYS
, el número de fragmento de Kinesis Video Streams se añade a cada elemento S del archivo de manifiesto con el nombre de atributo «kvs:fn». Estos números de fragmento se pueden usar para registrar o para usarlos con otros APIs (por ejemplo, y).GetMedia
GetMediaForFragmentList
Se necesita un reproductor DASH multimedia personalizado MPEG para aprovechar este atributo personalizado.El valor predeterminado es
NEVER
.Tipo: cadena
Valores válidos:
ALWAYS | NEVER
Obligatorio: no
- DisplayFragmentTimestamp
-
Según la DASH especificación MPEG -, la hora exacta del reloj de pared de los fragmentos del archivo de manifiesto se puede obtener mediante los atributos del propio manifiesto. Sin embargo, por lo generalMPEG, los reproductores multimedia DASH compatibles no gestionan adecuadamente las brechas en la cronología multimedia. Kinesis Video Streams ajusta la cronología multimedia del archivo de manifiesto para permitir la reproducción de contenido multimedia con discontinuidades. Por lo tanto, es posible que la hora del reloj de pared derivada del archivo de manifiesto no sea precisa. Si DisplayFragmentTimestamp se establece en
ALWAYS
, se añade la marca de tiempo exacta del fragmento a cada elemento S del archivo de manifiesto con el nombre de atributo «kvs:ts». Se necesita un reproductor DASH multimedia personalizado MPEG para aprovechar este atributo personalizado.El valor predeterminado es
NEVER
. Si DASHFragmentSelector es asíSERVER_TIMESTAMP
, las marcas de tiempo serán las marcas de tiempo de inicio del servidor. Del mismo modo, cuando DASHFragmentSelector esPRODUCER_TIMESTAMP
, las marcas de tiempo serán las marcas de tiempo de inicio del productor.Tipo: cadena
Valores válidos:
ALWAYS | NEVER
Obligatorio: no
- Expires
-
El tiempo en segundos que falta para que caduque la sesión solicitada. Este valor puede estar entre 300 (5 minutos) y 43200 (12 horas).
Cuando una sesión caduca, no se pueden realizar nuevas llamadas a
GetDashManifest
esa sesión ni seGetMP4MediaFragment
pueden realizar para ella.GetMP4InitFragment
El valor predeterminado es 300 (5 minutos).
Tipo: entero
Rango válido: valor mínimo de 300. Valor máximo de 43 200.
Obligatorio: no
- MaxManifestFragmentResults
-
El número máximo de fragmentos que se devuelven en el DASH manifiesto MPEG -.
Si
PlaybackMode
esLIVE
, se devuelven los fragmentos más recientes hasta este valor. Si elPlaybackMode
esON_DEMAND
, se devuelven los fragmentos más antiguos, hasta este número máximo.Cuando hay un mayor número de fragmentos disponibles en un DASH manifiesto en directoMPEG, los reproductores de vídeo suelen almacenar el contenido en búfer antes de iniciar la reproducción. Si se aumenta el tamaño del búfer, se aumenta la latencia de reproducción, pero se reduce la probabilidad de que se vuelva a almacenar en búfer durante la reproducción. Recomendamos que un DASH manifiesto en directo MPEG tenga un mínimo de 3 fragmentos y un máximo de 10 fragmentos.
El valor predeterminado es de 5 fragmentos si
PlaybackMode
esLIVE
oLIVE_REPLAY
y 1000 siPlaybackMode
esON_DEMAND
.El valor máximo de 1000 fragmentos corresponde a más de 16 minutos de vídeo en las transmisiones con fragmentos de 1 segundo y a más de 2 horas y media de vídeo en las transmisiones con fragmentos de 10 segundos.
Tipo: largo
Rango válido: valor mínimo de 1. Valor máximo de 5000.
Obligatorio: no
- PlaybackMode
-
Ya sea para recuperar datos en directo, reproducirlos en directo o archivados bajo demanda.
Entre las características de los tres tipos de sesiones se incluyen las siguientes:
-
LIVE
: Para las sesiones de este tipo, el DASH manifiesto MPEG - se actualiza continuamente con los fragmentos más recientes a medida que están disponibles. Recomendamos que el reproductor multimedia recupere un nuevo manifiesto en un intervalo de un segundo. Cuando se reproduce este tipo de sesión en un reproductor multimedia, la interfaz de usuario suele mostrar una notificación «en directo», sin necesidad de controlar la posición de visualización en la ventana de reproducción.nota
En el
LIVE
modo, los fragmentos más recientes disponibles se incluyen en un MPEG DASH manifiesto, incluso si hay una brecha entre los fragmentos (es decir, si falta un fragmento). Un espacio como este puede provocar que el reproductor multimedia se detenga o que se interrumpa la reproducción. En este modo, los fragmentos no se añaden al MPEG DASH manifiesto si son más antiguos que el fragmento más reciente de la lista de reproducción. Si el fragmento que falta está disponible después de añadir otro fragmento al manifiesto, el fragmento más antiguo no se añadirá y el espacio no se llenará. -
LIVE_REPLAY
: Para las sesiones de este tipo, el DASH manifiesto MPEG - se actualiza de forma similar a como se actualiza para elLIVE
modo, con la salvedad de que comienza por incluir fragmentos de una hora de inicio determinada. En lugar de añadir fragmentos a medida que se ingieren, los fragmentos se añaden a medida que transcurre la duración del siguiente fragmento. Por ejemplo, si los fragmentos de la sesión duran dos segundos, se añade un fragmento nuevo al manifiesto cada dos segundos. Este modo resulta útil para poder iniciar la reproducción desde el momento en que se detecta un evento y seguir retransmitiendo en directo contenido multimedia que aún no se haya ingerido en el momento de la creación de la sesión. Este modo también es útil para transmitir contenido multimedia previamente archivado sin estar limitado por el límite de 1000 fragmentos establecido en elON_DEMAND
modo. -
ON_DEMAND
: Para sesiones de este tipo, el DASH manifiesto MPEG - contiene todos los fragmentos de la sesión, hasta el número especificado enMaxManifestFragmentResults
. El manifiesto se debe recuperar solo una vez por sesión. Cuando este tipo de sesión se reproduce en un reproductor multimedia, la interfaz de usuario suele mostrar un control de barra para seleccionar la posición de la ventana de reproducción que se va a mostrar.
En todos los modos de reproducción, si
FragmentSelectorType
esPRODUCER_TIMESTAMP
así, y si hay varios fragmentos con la misma marca de tiempo de inicio, el fragmento que tenga el número de fragmento mayor (es decir, el fragmento más reciente) se incluye en el MPEG manifiesto -. DASH Los demás fragmentos no están incluidos. Los fragmentos que tienen marcas temporales diferentes pero que tienen duraciones superpuestas se siguen incluyendo en el MPEG manifiesto. DASH Esto puede provocar un comportamiento inesperado en el reproductor multimedia.El valor predeterminado es
LIVE
.Tipo: cadena
Valores válidos:
LIVE | LIVE_REPLAY | ON_DEMAND
Obligatorio: no
-
- StreamARN
-
El nombre del recurso de Amazon (ARN) de la transmisión para la que se va a recuperar el DASH manifiesto MPEG -URL.
Debe especificar el
StreamName
o elStreamARN
.Tipo: cadena
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 1024 caracteres.
Patrón:
arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+
Obligatorio: no
- StreamName
-
El nombre de la transmisión para la que se va a recuperar el DASH manifiesto MPEG -URL.
Debe especificar el
StreamName
o elStreamARN
.Tipo: cadena
Limitaciones de longitud: longitud mínima de 1. La longitud máxima es de 256 caracteres.
Patrón:
[a-zA-Z0-9_.-]+
Obligatorio: no
Sintaxis de la respuesta
HTTP/1.1 200
Content-type: application/json
{
"DASHStreamingSessionURL": "string"
}
Elementos de respuesta
Si la acción se realiza correctamente, el servicio devuelve una respuesta de HTTP 200.
El servicio devuelve los siguientes datos en JSON formato.
- DASHStreamingSessionURL
-
El manifiesto URL (que contiene el identificador de sesión) que un reproductor multimedia puede utilizar para recuperar el MPEG DASH manifiesto.
Tipo: cadena
Errores
Para obtener información acerca de los errores comunes a todas las acciones, consulte Errores comunes.
- ClientLimitExceededException
-
Kinesis Video Streams ha limitado la solicitud porque ha superado un límite. Intente realizar la llamada más tarde. Para obtener información sobre los límites, consulte Cuotas de Kinesis Video Streams.
HTTPCódigo de estado: 400
- InvalidArgumentException
-
Un parámetro específico supera sus restricciones, no se admite o no se puede usar.
HTTPCódigo de estado: 400
- InvalidCodecPrivateDataException
-
Los datos privados del códec en al menos una de las pistas del flujo de vídeo no son válidos para esta operación.
HTTPCódigo de estado: 400
- MissingCodecPrivateDataException
-
No se encontraron datos privados del códec en al menos una de las pistas de la transmisión de vídeo.
HTTPCódigo de estado: 400
- NoDataRetentionException
-
GetImages
se solicitó para una transmisión que no retiene datos (es decir, tiene unDataRetentionInHours
0).HTTPCódigo de estado: 400
- NotAuthorizedException
-
Código de estado: 403, la persona que llama no está autorizada a realizar ninguna operación en la transmisión determinada o el token ha caducado.
HTTPCódigo de estado: 401
- ResourceNotFoundException
-
GetImages
mostrará este error cuando Kinesis Video Streams no encuentre la transmisión que ha especificado.GetHLSStreamingSessionURL
yGetDASHStreamingSessionURL
arroja este error si una sesión con unPlaybackMode
deON_DEMAND
oLIVE_REPLAY
se solicita una transmisión que no tiene fragmentos en el intervalo de tiempo solicitado, o siLIVE
se solicita una sesión con unPlaybackMode
de o para una transmisión que no tiene fragmentos en los últimos 30 segundos.HTTPCódigo de estado: 404
- UnsupportedStreamMediaTypeException
-
No se pudo determinar el tipo de medio (por ejemplo, vídeo h.264 o h.265 AAC o audio G.711) a partir del códec de las pistas IDs del primer fragmento de una sesión de reproducción. El ID de códec de la pista 1 debería ser
V_MPEG/ISO/AVC
y, opcionalmente, el ID de códec de la pista 2 debería ser.A_AAC
HTTPCódigo de estado: 400
Véase también
Para obtener más información sobre cómo usarlo API en uno de los idiomas específicos AWS SDKs, consulte lo siguiente: