0
我想知道是否可以使用AssetFile添加到任務中?我有這個流程:在任務中使用IAssetFile的Azure媒體服務
- 將視頻編碼爲幾種分辨率。
- 以360p分辨率視頻進行彙總。
我知道IAsset的Id,併成功獲取360p分辨率視頻的IAssetFile。但是,我無法使用它,因爲任務需要IAsset而不是IAssetFile。
這裏是我的示例代碼:
IJob job = _MediaServicesContext.Jobs.Create("Video Thumbnail Job");
string MediaProcessorName = "Azure Media Video Thumbnails";
var processor = GetLatestMediaProcessorByName(MediaProcessorName);
IAsset curretAsset = _MediaServicesContext.Assets.Where(a => a.Id == request.AssetId).FirstOrDefault();
IAssetFile file360 = curretAsset.AssetFiles.Where(f => f.Name.EndsWith("360_500.mp4")).FirstOrDefault();
String configuration = "{\"version\":\"1.0\",\"options\":{\"outputAudio\" : \"false\", \"maxMotionThumbnailDurationInSecs\": \"10\", \"fadeInFadeOut\" : \"false\" }}";
// Create a task with the encoding details, using a string preset.
ITask task = job.Tasks.AddNew("My Video Thumbnail Task",
processor,
configuration,
TaskOptions.None);
// Specify the input asset.
task.InputAssets.Add(file360);
// Specify the output asset.
task.OutputAssets.AddNew(curretAsset.Id.ToString() + " Summarized", AssetCreationOptions.None);
// Use the following event handler to check job progress.
job.StateChanged += new EventHandler<JobStateChangedEventArgs>(StateChanged);
// Launch the job.
job.Submit();
// Check job execution and wait for job to finish.
Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None);
progressJobTask.Wait();
謝謝
這不是一個好的答案,因爲你只是鏈接到外部資源。如果它遲下來會怎樣?嘗試將解決方案的重要部分複製並粘貼到答案中。 [嘗試閱讀關於在這裏寫一個好的答案。](https://stackoverflow.com/help/how-to-answer) – Adam