public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonKinesisVideoConfig config = new AmazonKinesisVideoConfig(); config.RegionEndpoint = region; ConfigureClient(config); AmazonKinesisVideoClient client = new AmazonKinesisVideoClient(creds, config); ListStreamsResponse resp = new ListStreamsResponse(); do { ListStreamsRequest req = new ListStreamsRequest { NextToken = resp.NextToken , MaxResults = maxItems }; resp = client.ListStreams(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.StreamInfoList) { AddObject(obj); } }while (!string.IsNullOrEmpty(resp.NextToken)); }
public static List <StreamInfo> GetVideoStreamList() { List <StreamInfo> streamList = null; try { AmazonKinesisVideoClient kinesisVideoClient; using (kinesisVideoClient = new AmazonKinesisVideoClient(Models.MyAWSConfigs.KinesisRegion)) { ListStreamsRequest listStreamsRequest = new ListStreamsRequest(); ListStreamsResponse listStreamsResponse = kinesisVideoClient.ListStreams(listStreamsRequest); if (listStreamsResponse.HttpStatusCode == System.Net.HttpStatusCode.OK) { streamList = listStreamsResponse.StreamInfoList; } else { Console.WriteLine("Error listing kinesis video streams"); } } } catch (AmazonKinesisVideoException e) { Console.WriteLine("AmazonKinesisVideoException: " + e); } catch (Exception e) { Console.WriteLine("Error: " + e); } return(streamList); }
public static string CreateVideoStream(string streamName) { string streamArn = ""; try { List <StreamInfo> streamlList = GetVideoStreamList(); if (streamlList != null) { if (streamlList.FindAll(videoStream => videoStream.StreamName == streamName).Count > 0) { streamArn = "contain"; } else { AmazonKinesisVideoClient kinesisVideoClient; using (kinesisVideoClient = new AmazonKinesisVideoClient(Models.MyAWSConfigs.KinesisRegion)) { CreateStreamRequest createStreamRequest = new CreateStreamRequest() { StreamName = streamName, DataRetentionInHours = 1, MediaType = "video/h264", }; CreateStreamResponse createStreamResponse = kinesisVideoClient.CreateStream(createStreamRequest); if (createStreamResponse.HttpStatusCode == System.Net.HttpStatusCode.OK) { streamArn = createStreamResponse.StreamARN; } else { Console.WriteLine("Error creating kinesis video stream"); } } } } } catch (AmazonKinesisVideoException e) { Console.WriteLine("AmazonKinesisVideoException: " + e); } catch (Exception e) { Console.WriteLine("Error: " + e); } return(streamArn); }
protected IAmazonKinesisVideo CreateClient(AWSCredentials credentials, RegionEndpoint region) { var config = new AmazonKinesisVideoConfig { RegionEndpoint = region }; Amazon.PowerShell.Utils.Common.PopulateConfig(this, config); this.CustomizeClientConfig(config); var client = new AmazonKinesisVideoClient(credentials, config); client.BeforeRequestEvent += RequestEventHandler; client.AfterResponseEvent += ResponseEventHandler; return(client); }
public static bool DeleteVideoStream(string streamArn) { bool isSuccess = false; try { AmazonKinesisVideoClient kinesisVideoClient; using (kinesisVideoClient = new AmazonKinesisVideoClient(Models.MyAWSConfigs.KinesisRegion)) { DeleteStreamRequest deleteStreamRequest = new DeleteStreamRequest { StreamARN = streamArn, }; DeleteStreamResponse deleteStreamResponse = kinesisVideoClient.DeleteStream ( deleteStreamRequest ); Thread.Sleep(1 * 1000); if (deleteStreamResponse.HttpStatusCode == System.Net.HttpStatusCode.OK) { Console.WriteLine("Deleting kinesis video stream"); isSuccess = true; } else { Console.WriteLine("Error deleting kinesis video stream"); } } } catch (AmazonKinesisVideoException e) { Console.WriteLine("AmazonKinesisVideoException: " + e); } catch (Exception e) { Console.WriteLine("Error: " + e); } return(isSuccess); }
private static async Task SetStreamUriKinesisHLSAsync() { try { string awsAccessKeyID = @""; string awsSecretAccessKey = @""; var streamName = @""; var video = new AmazonKinesisVideoClient( awsAccessKeyID, awsSecretAccessKey, new AmazonKinesisVideoConfig() { RegionEndpoint = RegionEndpoint.USWest2, } ); var endPoint = await video.GetDataEndpointAsync( new GetDataEndpointRequest() { //StreamARN = streamARN, StreamName = streamName, APIName = APIName.GET_HLS_STREAMING_SESSION_URL } ); var videoArchived = new AmazonKinesisVideoArchivedMediaClient( awsAccessKeyID, awsSecretAccessKey, new AmazonKinesisVideoArchivedMediaConfig() { ServiceURL = endPoint.DataEndpoint } ); /*var fragments = await videoArchived.ListFragmentsAsync( * new ListFragmentsRequest() * { * StreamName = streamName, * FragmentSelector = new FragmentSelector() * } * ); * foreach(var f in fragments.Fragments) * { * Console.WriteLine($"FragmentLengthInMilliseconds:{f.FragmentLengthInMilliseconds}, FragmentNumber:{f.FragmentNumber}, FragmentSizeInBytes: {f.FragmentSizeInBytes}, ProducerTimestamp:{f.ProducerTimestamp}, ServerTimestamp:{f.ServerTimestamp}"); * }*/ var hlsSession = await videoArchived.GetHLSStreamingSessionURLAsync( new GetHLSStreamingSessionURLRequest() { //StreamARN = streamARN, StreamName = streamName, PlaybackMode = PlaybackMode.ON_DEMAND, HLSFragmentSelector = new HLSFragmentSelector() { FragmentSelectorType = HLSFragmentSelectorType.SERVER_TIMESTAMP, TimestampRange = new HLSTimestampRange() { StartTimestamp = new DateTime(2018, 9, 19, 19, 55, 20), EndTimestamp = new DateTime(2018, 9, 19, 19, 55, 30) } } } ); var ss = hlsSession.HLSStreamingSessionURL; Console.WriteLine(ss); } catch (Exception e) { Console.WriteLine(e.ToString()); } }