/// <summary> /// Formulates a url for streaming video using the HLS protocol /// </summary> /// <param name="options">The options.</param> /// <returns>System.String.</returns> /// <exception cref="System.ArgumentNullException">options</exception> public string GetHlsVideoStreamUrl(VideoStreamOptions options) { if (options == null) { throw new ArgumentNullException("options"); } return(GetVideoStreamUrl("video.m3u8", options)); }
/// <summary> /// Gets the url needed to stream a video file /// </summary> /// <param name="options">The options.</param> /// <returns>System.String.</returns> /// <exception cref="System.ArgumentNullException">options</exception> public string GetVideoStreamUrl(VideoStreamOptions options) { if (options == null) { throw new ArgumentNullException("options"); } var handler = "Videos/" + options.ItemId + "/stream"; if (!string.IsNullOrEmpty(options.OutputFileExtension)) { handler += "." + options.OutputFileExtension.TrimStart('.'); } return(GetVideoStreamUrl(handler, options)); }
/// <summary> /// Gets the video stream URL. /// </summary> /// <param name="handler">The handler.</param> /// <param name="options">The options.</param> /// <returns>System.String.</returns> private string GetVideoStreamUrl(string handler, VideoStreamOptions options) { var queryParams = new QueryStringDictionary(); queryParams.AddIfNotNullOrEmpty("VideoCodec", options.VideoCodec); queryParams.AddIfNotNull("VideoBitRate", options.VideoBitRate); queryParams.AddIfNotNull("Width", options.Width); queryParams.AddIfNotNull("Height", options.Height); queryParams.AddIfNotNull("MaxWidth", options.MaxWidth); queryParams.AddIfNotNull("MaxHeight", options.MaxHeight); queryParams.AddIfNotNull("FrameRate", options.FrameRate); queryParams.AddIfNotNull("AudioStreamIndex", options.AudioStreamIndex); queryParams.AddIfNotNull("VideoStreamIndex", options.VideoStreamIndex); queryParams.AddIfNotNull("SubtitleStreamIndex", options.SubtitleStreamIndex); queryParams.AddIfNotNullOrEmpty("Profile", options.Profile); queryParams.AddIfNotNullOrEmpty("Level", options.Level); return(GetMediaStreamUrl(handler, options, queryParams)); }