当前位置: 首页 > 知识库问答 >
问题:

Boto3 kinesis视频流:调用GetMedia操作时出错

张溪叠
2023-03-14
import boto3

kinesis_media = boto3.client('kinesis-video-media' region_name='region')

stream = kinesis_media.get_media(StreamARN='my-arn',
         StartSelector={'StartSelectorType': 'EARLIEST'}) # this is not the endpoint
ClientError: An error occurred (403) when calling the GetMedia operation: <AccessDeniedException>
  <Message>Unable to determine service/operation name to be authorized</Message>
</AccessDeniedException>

我猜是因为没有指定endpoint,但是kinesis-video-media类型的客户端没有获取endpointURL所需的get_data_endpoint方法?

共有1个答案

姜钧
2023-03-14

首先,使用KinesisVideo客户端获取endpoint:

import boto3

kinesis_client = boto3.client('kinesisvideo',region_name='us-west-2')

response = kinesis_client.get_data_endpoint(StreamARN='...ARN...',APIName='GET_MEDIA')

响应变量包含:

{'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '...', 'HTTPHeaders': {'x-amzn-requestid': '...', 'date': 'Tue, 10 Apr 2018 08:22:59 GMT', 'content-length': '74', 'content-type': 'application/json'}}, u'DataEndpoint': u'https://s-4010cf70.kinesisvideo.us-west-2.amazonaws.com'}

然后,用给定的endpoint调用Kinesis-video-media客户端:

video_client = boto3.client('kinesis-video-media',endpoint_url='https://s-4010cf70.kinesisvideo.us-west-2.amazonaws.com',region_name='us-west-2')

stream = video_client.get_media(StreamARN='arn:aws:kinesisvideo:us-west-2:...',StartSelector={'StartSelectorType': 'NOW'})
{u'ContentType': 'video/webm', u'Payload': <botocore.response.StreamingBody object at 0x7f1fab294850>, 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '...', 'HTTPHeaders': {'x-amzn-requestid': '...', 'transfer-encoding': 'chunked', 'content-type': 'video/webm', 'date': 'Tue, 10 Apr 2018 08:27:19 GMT'}}}
 类似资料:
  • 我通过AWS Connect服务将数据摄取到(Kinesis Video Stream)KVS,现在使用GetMedia API,我能够提取有效负载,但我如何将此输出转换为MP3/WAV?我想将此输出摄取到AWS转录服务,以获得AWS连接服务摄取到KVS的音频呼叫的文本格式。 请建议如何转换有效负载输出到MP3/WAV等。

  • 任何人都可以指向一个官方Java文档,该文档描述了流将调用每个元素的每个“无干扰和无状态”中间操作的次数。 例如: 以上代码当前将调用< code>check方法4次。 在JDK的当前或未来版本中,方法的执行次数是否可能多于或少于从List或任何其他标准JavaAPI创建的流中的元素数量?

  • 应用程序创建的h264帧被发送到标准输出,在标准输出中,使用ffmpeg将该流重新复用为mp4,并将其传递给服务器,服务器根据请求将其传递给客户端。 这是个好办法吗?这甚至可能创建一个低延迟30fps视频流使用这种方法?

  • 我正在使用以下代码调整mp4视频的大小(moviepy): 当我在电脑上播放时,调整大小的剪辑的音频可以工作,但在iPhone上不行。(原始剪辑的音频确实适用于我的iPhone。) 我怎样才能解决这个问题? 第一幅图像:已调整大小的视频的编解码器 第二幅图像:原始视频的编解码器

  • 问题:是否有一个单独的FFMPEG裁剪过滤器可以用于所有视频,包括(但不限于):856x480、640x480和1280x720? 我们有一个视频处理系统(使用DirectShow),所有输入到这个系统的视频必须是16:9使用MJPEG编解码器。我们使用下面的ffmpeg命令将源视频转换为MJPEG,缩放像素使其为正方形,然后裁剪到16:9的纵横比。这对大多数输入视频都很管用,输出正是我们想要的。

  • 我正在一个项目中工作,目标是从amazon S3获取报告。目前,我正在尝试访问S3位置,以检查我的可用桶列表。 我在python中工作,我已经在提示符下设置了所有凭据:aws configure。 在我的python文件中,当我尝试列出我所有的bucket时: 我得到了这个错误: 回溯(最后一次调用):文件“C:\Users\bakpovo\testAmazon.py”,第3行,在s3中的buck