in src/main/java/com/amazonaws/kvstranscribestreaming/KVSUtils.java [176:223]
public static InputStream getInputStreamFromKVS(String streamName,
Regions region,
String startFragmentNum,
AWSCredentialsProvider awsCredentialsProvider,
String startSelectorType) {
Validate.notNull(streamName);
Validate.notNull(region);
Validate.notNull(startFragmentNum);
Validate.notNull(awsCredentialsProvider);
AmazonKinesisVideo amazonKinesisVideo = (AmazonKinesisVideo) AmazonKinesisVideoClientBuilder.standard().build();
String endPoint = amazonKinesisVideo.getDataEndpoint(new GetDataEndpointRequest()
.withAPIName(APIName.GET_MEDIA)
.withStreamName(streamName)).getDataEndpoint();
AmazonKinesisVideoMediaClientBuilder amazonKinesisVideoMediaClientBuilder = AmazonKinesisVideoMediaClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, region.getName()))
.withCredentials(awsCredentialsProvider);
AmazonKinesisVideoMedia amazonKinesisVideoMedia = amazonKinesisVideoMediaClientBuilder.build();
StartSelector startSelector;
startSelectorType = isNullOrEmpty(startSelectorType) ? "NOW" : startSelectorType;
switch (startSelectorType) {
case "FRAGMENT_NUMBER":
startSelector = new StartSelector()
.withStartSelectorType(StartSelectorType.FRAGMENT_NUMBER)
.withAfterFragmentNumber(startFragmentNum);
logger.info("StartSelector set to FRAGMENT_NUMBER: " + startFragmentNum);
break;
case "NOW":
default:
startSelector = new StartSelector()
.withStartSelectorType(StartSelectorType.NOW);
logger.info("StartSelector set to NOW");
break;
}
GetMediaResult getMediaResult = amazonKinesisVideoMedia.getMedia(new GetMediaRequest()
.withStreamName(streamName)
.withStartSelector(startSelector));
logger.info("GetMedia called on stream {} response {} requestId {}", streamName,
getMediaResult.getSdkHttpMetadata().getHttpStatusCode(),
getMediaResult.getSdkResponseMetadata().getRequestId());
return getMediaResult.getPayload();
}