public JsonResult Workflow(string storageAccount, string assetName, string assetDescription, string assetAlternateId, string[] fileNames, bool adaptiveStreaming, bool thumbnailImages, bool videoAnalyzer, bool audioAnalyzer, bool videoIndexer, bool audioIndexer) { try { Asset[] inputAssets; List <Job> jobs = new List <Job>(); string authToken = HomeController.GetAuthToken(Request, Response); using (MediaClient mediaClient = new MediaClient(authToken)) { Transform transform = mediaClient.CreateTransform(adaptiveStreaming, thumbnailImages, videoAnalyzer, audioAnalyzer, videoIndexer, audioIndexer); inputAssets = CreateInputAssets(mediaClient, storageAccount, assetName, assetDescription, assetAlternateId, fileNames); foreach (Asset inputAsset in inputAssets) { Job job = null; string insightId = null; if (mediaClient.IndexerEnabled() && (videoIndexer || audioIndexer)) { bool audioOnly = !videoIndexer && audioIndexer; insightId = mediaClient.IndexerUploadVideo(mediaClient.MediaAccount, inputAsset, null, Priority.Normal, true, audioOnly); } if (transform != null) { StorageBlobClient blobClient = new StorageBlobClient(mediaClient.MediaAccount, inputAsset.StorageAccountName); MediaAsset mediaAsset = new MediaAsset(mediaClient, inputAsset); string fileName = mediaAsset.Files[0].Name; string inputFileUrl = blobClient.GetDownloadUrl(inputAsset.Container, fileName, false); MediaJobOutputMode outputAssetMode = MediaJobOutputMode.SingleAsset; string[] outputAssetDescriptions = new string[] { assetDescription }; string[] outputAssetAlternateIds = new string[] { insightId }; PredefinedStreamingPolicy streamingPolicy = PredefinedStreamingPolicy.ClearStreamingOnly; job = mediaClient.CreateJob(authToken, transform.Name, null, null, Priority.Normal, null, inputFileUrl, inputAsset.Name, outputAssetMode, outputAssetDescriptions, outputAssetAlternateIds, streamingPolicy); } if (job != null) { if (!string.IsNullOrEmpty(insightId)) { job.CorrelationData.Add("insightId", insightId); } jobs.Add(job); } else { inputAsset.AlternateId = insightId; } } } return(jobs.Count > 0 ? Json(jobs.ToArray()) : Json(inputAssets)); } catch (ApiErrorException ex) { return(new JsonResult(ex.Response.Content) { StatusCode = (int)ex.Response.StatusCode }); } }
public JsonResult Create(string transformName, string transformDescription, MediaTransformOutput[] transformOutputs, int?thumbnailSpriteColumns) { try { Transform transform; string authToken = HomeController.GetAuthToken(Request, Response); using (MediaClient mediaClient = new MediaClient(authToken)) { transform = mediaClient.CreateTransform(transformName, transformDescription, transformOutputs, thumbnailSpriteColumns); } return(Json(transform)); } catch (ApiErrorException ex) { return(new JsonResult(ex.Response.Content) { StatusCode = (int)ex.Response.StatusCode }); } }
private static void CreateJob(MediaClient mediaClient, MediaIngestManifest ingestManifest, Asset inputAsset, ILogger logger) { string logData = string.Concat("Input File Url: ", ingestManifest.JobInputFileUrl); WriteLog(ingestManifest.Name, logData, logger, false); if (mediaClient.IndexerEnabled() && (ingestManifest.TransformPreset.Value.HasFlag(MediaTransformPreset.VideoIndexer) || ingestManifest.TransformPreset.Value.HasFlag(MediaTransformPreset.AudioIndexer))) { bool audioOnly = !ingestManifest.TransformPreset.Value.HasFlag(MediaTransformPreset.VideoIndexer) && ingestManifest.TransformPreset.Value.HasFlag(MediaTransformPreset.AudioIndexer); string insightId = mediaClient.IndexerUploadVideo(mediaClient.MediaAccount, inputAsset, ingestManifest.JobInputFileUrl, ingestManifest.JobPriority, true, audioOnly); logData = string.Concat("Insight Id: ", insightId); WriteLog(ingestManifest.Name, logData, logger, false); } Transform transform = mediaClient.CreateTransform(ingestManifest.TransformPreset.Value); if (transform != null) { Job job = mediaClient.CreateJob(null, transform.Name, ingestManifest.JobName, ingestManifest.JobDescription, ingestManifest.JobPriority, ingestManifest.JobData, ingestManifest.JobInputFileUrl, ingestManifest.AssetName, ingestManifest.JobOutputMode, ingestManifest.JobOutputAssetDescriptions, ingestManifest.JobOutputAssetAlternateIds, ingestManifest.StreamingPolicyName); logData = string.Concat("Transform Name: ", transform.Name); WriteLog(ingestManifest.Name, logData, logger, false); logData = string.Concat("Job Name: ", job.Name); WriteLog(ingestManifest.Name, logData, logger, false); } }