View a markdown version of this page

Resolución de problemas - Amazon Kinesis Video Streams

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.

Resolución de problemas

Las imágenes no se enviaron al bucket de Amazon S3

Para solucionar este problema, hay algunas cosas que debes tener en cuenta:

  1. Faltan permisos

  2. La configuración de generación de imágenes es incorrecta

  3. La etiqueta no se agregó al fragmento

Faltan permisos

Si utiliza una clave de KMS gestionada por el cliente, asegúrese de que la función que realiza las PutMedia llamadas (persona que carga) tenga los permisos de cifrado y descifrado adecuados y que tenga acceso al bucket de Amazon S3, de la siguiente manera:

  • kms:Encrypt

  • kms:GenerateDataKey

  • kms:Decrypt

  • s3:PutObject

Para obtener más información, consulte ¿Cómo puedo comenzar a usar el cifrado en el servidor?.

Compruebe el destino

AWS CLI Utilízala para llamar a la DescribeImageGenerationConfiguration API de tu transmisión.

aws kinesisvideo describe-image-generation-configuration \ --stream-name "demo-stream"

Revisa DestinationConfig la respuesta y confirma que es correcta.

Compruebe que la etiqueta de generación de imágenes se haya añadido al fragmento

  1. Compruebe que la putKinesisVideoEventMetadata llamada se ha realizado correctamente.

    El putKinesisVideoEventMetadata método devuelve un código de estado 0 en caso de éxito. Se recomienda comprobar si los valores devueltos por las funciones son 0. Si se devuelve un código de estado distinto de cero, conviértalo en hexadecimal y compruebe si desea Referencia de códigos de error obtener más información.

    Asegúrese de tener activados los registros de errores y revíselos para ver si hay otros errores en la aplicación. Revise y compare el patrón de llamadas de presentación de marcos de su solicitud con la implementación recomendada:Añadir etiquetas de generación de imágenes a los fragmentos.

  2. Verifique el archivo MKV generado localmente

    Confirme que el SDK del productor o la aplicación de muestra adjuntaron las etiquetas correctamente.

    1. Establezca la variable de entorno KVS_DEBUG_DUMP_DATA_FILE_DIR. Si se establece este valor, el SDK del productor escribe los archivos multimedia que habría enviado a Kinesis Video Streams en la ubicación especificada.

      export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory
      nota

      El SDK no creará un directorio nuevo si la ruta no existe. Cree la carpeta si es necesario.

    2. Vuelva a ejecutar la aplicación. Debería ver cómo se escriben .mkv los archivos en el directorio de salida especificado.

    3. Verifica el contenido para asegurarte de que la etiqueta esté presente con MKVTool Nix u otro software.

      1. Instala MKVTool Nix: brew install mkvtoolnix

      2. Ejecute MKVTool Nix con uno de los .mkv archivos del directorio de salida.

        mkvinfo -v ./path/to/video/file
      3. Revise el resultado de MKVTool Nix. Si el método SDK del KinesisVideoStream::PutFragmentMetadata productor se invocó correctamente, deberías ver la siguiente etiqueta MKV.

        |+ Tags | + Tag | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATION
        nota

        Las etiquetas pertenecen al clúster anterior.

    4. Si la etiqueta MKV no está presente, asegúrese de que se haya llamado al método SDK del KinesisVideoStream::PutEventMetadata productor con el STREAM_EVENT_TYPE_IMAGE_GENERATION argumento y de que haya devuelto un código de éxito (0).