コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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());
            }
        }