in src/main/java/com/amazonaws/kinesisvideo/java/service/JavaKinesisVideoServiceClient.java [412:452]
public void putMedia(@Nonnull final String streamName,
@Nonnull final String containerType,
final long streamStartTimeInMillis,
final boolean absoluteFragmentTimes,
final boolean ackRequired,
@Nonnull final String dataEndpoint,
final long timeoutInMillis,
@Nullable final KinesisVideoCredentialsProvider credentialsProvider,
@Nonnull final InputStream dataInputStream,
@Nonnull final Consumer<InputStream> acksConsumer,
@Nullable final Consumer<Exception> completionCallback)
throws KinesisVideoException {
final AWSCredentialsProvider awsCredentialsProvider = createAwsCredentialsProvider(credentialsProvider, log);
final com.amazonaws.kinesisvideo.config.ClientConfiguration clientConfiguration =
com.amazonaws.kinesisvideo.config.ClientConfiguration
.builder()
.serviceName("kinesisvideo")
.region(configuration.getRegion())
.build();
final KinesisVideoAWS4Signer signer = new KinesisVideoAWS4Signer(awsCredentialsProvider, clientConfiguration);
final URI putMediaUri = URI.create(dataEndpoint + "/putMedia");
final String timecodeType = absoluteFragmentTimes ? ABSOLUTE_TIMECODE : RELATIVE_TIMECODE;
final PutMediaClient.Builder putMediaClientBuilder = PutMediaClient
.builder()
.log(log)
.receiveTimeout(RECEIVE_TIMEOUT_1HR)
.timestamp(streamStartTimeInMillis)
.signWith(signer)
.receiveAcks(acksConsumer)
.receiveCompletion(completionCallback)
.streamName(streamName)
.mkvStream(dataInputStream)
.fragmentTimecodeType(timecodeType)
.putMediaDestinationUri(putMediaUri);
final PutMediaClient putMediaClient = putMediaClientBuilder.build();
// Kick off execution
putMediaClient.putMediaInBackground();
}