public static void CreateLiveChannelAndPushStream(string bucketName)
        {
            string liveChannelName = "rtmp-test";

            try
            {
                //create a live channel by using default paramters
                var result = client.CreateLiveChannel(new CreateLiveChannelRequest(bucketName, liveChannelName));

                //enable live channel
                client.SetLiveChannelStatus(new SetLiveChannelStatusRequest(bucketName, liveChannelName, "enabled"));

                //build a presigned push url
                var uri = client.GenerateRtmpPresignedUri(new GenerateRtmpPresignedUriRequest(bucketName, liveChannelName, "playlist.m3u8"));

                Console.WriteLine("push url: {0}", uri.ToString());

                //use ffmpeg to push stream
                //ffmpeg -re -i demo.mp4 -c copy -f flv "rtmp://...."
            }
            catch (OssException ex)
            {
                Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
                                  ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Failed with error info: {0}", ex.Message);
            }
        }