问题排查 - Amazon Kinesis Video Streams
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

问题排查

图片未传送到 Amazon S3 存储桶

要解决此问题,需要注意以下几点:

  1. 缺少权限

  2. 图像生成配置不正确

  3. 该标签未添加到片段中

缺少权限

如果您使用的是客户托管的 KMS 密钥,请确保执行PutMedia调用的角色(上传者)具有相应的加密和解密权限,并且可以访问 Amazon S3 存储桶,如下所示:

  • kms:Encrypt

  • kms:GenerateDataKey

  • kms:Decrypt

  • s3:PutObject

有关更多信息,请参阅 如何开始使用服务器端加密?

验证目的地

使用为您的直播调用 DescribeImageGenerationConfiguration API。 Amazon CLI

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

查看回复DestinationConfig中的内容并确认其看起来正确。

验证图像生成标签是否已添加到片段

  1. 检查呼putKinesisVideoEventMetadata叫是否成功。

    成功后,该putKinesisVideoEventMetadata方法返回状态码 0。我们建议检查函数的返回值是否为 0。如果返回非零状态码,请将其转换为十六进制并查看以错误代码参考获取更多信息。

    确保已打开错误日志,并查看日志中是否存在应用程序中的任何其他错误。查看应用程序的帧提交调用模式并将其与推荐的实现进行比较:为片段添加图像生成标签.

  2. 验证本地生成的 MKV 文件

    确认 Producer SDK 或示例应用程序正确地附加了标签。

    1. 设置 KVS_DEBUG_DUMP_DATA_FILE_DIR 环境变量。如果设置了此值,Producer SDK 会将其本应发送到 Kinesis Video Streams 的媒体文件写入指定位置。

      export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory
      注意

      如果路径不存在,SDK 将不会创建新目录。如有必要,请创建文件夹。

    2. 再次运行该应用程序。你应该会看到.mkv文件被写入到指定的输出目录。

    3. 使用 MKVTool Nix 或其他软件验证内容以确保标签存在。

      1. 安装 MKVTool Nix:brew install mkvtoolnix

      2. 使用输出目录中的一个.mkv文件运行 MKVTool Nix。

        mkvinfo -v ./path/to/video/file
      3. 查看 MKVTool Nix 的输出。如果正确调用了KinesisVideoStream::PutFragmentMetadata制作人 SDK 方法,您应该会看到以下 MKV 标签。

        |+ Tags | + Tag | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATION
        注意

        标签属于它之前的集群。

    4. 如果 MKV 标签不存在,请确保已使用STREAM_EVENT_TYPE_IMAGE_GENERATION参数调用KinesisVideoStream::PutEventMetadata生产者 SDK 方法,并且该方法返回成功 (0) 代码。