public void Process(IAsset asset) { var mediaProcessor = GetMediaProcessor(MediaProcessors.WINDOWS_AZURE_MEDIA_PACKAGER); var job = mediaContext.Jobs.Create(string.Format("{0} encode video job", asset.Name)); //TODO: Create constants for task names var task = job.Tasks.AddNew("Convert Media Task", mediaProcessor, @"<taskDefinition xmlns=""http://schemas.microsoft.com/iis/media/v4/TM/TaskDefinition#""> <name>MP4 to Smooth Streams</name> <id>5e1e1a1c-bba6-11df-8991-0019d1916af0</id> <description xml:lang=""en"">Converts MP4 files encoded with H.264 (AVC) video and AAC-LC audio codecs to Smooth Streams.</description> <inputFolder /> <properties namespace=""http://schemas.microsoft.com/iis/media/V4/TM/MP4ToSmooth#"" prefix=""mp4""> <property name=""keepSourceNames"" required=""false"" value=""false"" helpText=""This property tells the MP4 to Smooth task to keep the original file name rather than add the bitrate bitrate information."" /> </properties> <taskCode> <type>Microsoft.Web.Media.TransformManager.MP4toSmooth.MP4toSmooth_Task, Microsoft.Web.Media.TransformManager.MP4toSmooth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35</type> </taskCode> </taskDefinition>", TaskOptions.None); task.InputAssets.Add(asset); var smoothAsset = task.OutputAssets.AddNew(string.Format("{0} smooth streaming", asset.Name), AssetCreationOptions.None); var thumbnailMediaProcessor = GetMediaProcessor(MediaProcessors.WINDOWS_AZURE_MEDIA_ENCODER); thumbnailService.GenerateThumbnail(job, smoothAsset, thumbnailMediaProcessor, 236, 177); job.Submit(); }
public async Task ThumbnailsFunctionAsync( [EventGridTrigger] EventGridEvent eventGridEvent, [Blob("{data.url}", FileAccess.Read, Connection = "AzureWebJobsStorage")] Stream inputImageBlob, ILogger log) { try { log.LogInformation($"Event Grid Event Topic:\n {eventGridEvent.Topic}"); log.LogInformation($"Event Grid Event Subject:\n {eventGridEvent.Subject}"); log.LogInformation($"Event Grid Event Data:\n {eventGridEvent.Data}"); var originalFileName = eventGridEvent.Subject.Split('/').Last(); var thumbnailFileName = originalFileName.Insert(originalFileName.IndexOf('.'), "Thumbnail"); log.LogInformation("Uploading the thumbnail..."); var thumbnailStream = _thumbnailService.GenerateThumbnail(inputImageBlob); var thumbnailUri = await _fileStorageService .UploadStreamAsync(thumbnailStream, $"thumbnails/{thumbnailFileName}", SetMetadata(eventGridEvent)) .ConfigureAwait(false); log.LogInformation("Thumbnail uploaded..."); log.LogInformation($"Thumbnail Uri:\n {thumbnailUri}"); } catch (Exception exc) { log.LogInformation($"Exception Generating or Uploading Image Thumbnail:\n {exc.Message}"); log.LogInformation($"Exception StackTrace:\n {exc.StackTrace}"); throw; } }
public void Post([FromForm] GenerateThumbnailRequest request) { var success = service.GenerateThumbnail(request); }