Пример #1
0
 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
         });
     }
 }
Пример #2
0
 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
         });
     }
 }
Пример #3
0
        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);
            }
        }