本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
问题排查
图片未传送到 Amazon S3 存储桶
要解决此问题,需要注意以下几点:
-
缺少权限
-
图像生成配置不正确
-
该标签未添加到片段中
缺少权限
如果您使用的是客户托管的 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中的内容并确认其看起来正确。
验证图像生成标签是否已添加到片段
-
检查呼
putKinesisVideoEventMetadata叫是否成功。成功后,该
putKinesisVideoEventMetadata方法返回状态码 0。我们建议检查函数的返回值是否为 0。如果返回非零状态码,请将其转换为十六进制并查看以错误代码参考获取更多信息。确保已打开错误日志,并查看日志中是否存在应用程序中的任何其他错误。查看应用程序的帧提交调用模式并将其与推荐的实现进行比较:为片段添加图像生成标签.
-
验证本地生成的 MKV 文件
确认 Producer SDK 或示例应用程序正确地附加了标签。
-
设置
KVS_DEBUG_DUMP_DATA_FILE_DIR环境变量。如果设置了此值,Producer SDK 会将其本应发送到 Kinesis Video Streams 的媒体文件写入指定位置。export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory注意
如果路径不存在,SDK 将不会创建新目录。如有必要,请创建文件夹。
-
再次运行该应用程序。你应该会看到
.mkv文件被写入到指定的输出目录。 -
使用 MKVTool Nix 或其他软件验证内容以确保标签存在。
-
安装 MKVTool Nix:
brew install mkvtoolnix -
使用输出目录中的一个
.mkv文件运行 MKVTool Nix。mkvinfo -v ./path/to/video/file -
查看 MKVTool Nix 的输出。如果正确调用了
KinesisVideoStream::PutFragmentMetadata制作人 SDK 方法,您应该会看到以下 MKV 标签。|+ Tags | + Tag | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATION注意
标签属于它之前的集群。
-
-
如果 MKV 标签不存在,请确保已使用
STREAM_EVENT_TYPE_IMAGE_GENERATION参数调用KinesisVideoStream::PutEventMetadata生产者 SDK 方法,并且该方法返回成功 (0) 代码。
-