Транскодирование медийного сервиса Azure с использованием пользовательских предустановок

Я использую webjob в веб-сервисе Azure для обработки кодирования видео, и предустановки по умолчанию не устраняют проблему с поворотом видео (VVS) и обрезкой видео.

Когда я использую пользовательскую предустановку, она завершится сбоем, и состояние задания изменится с "запланировано" на "обработка", а затем на "ошибка" вместо "завершено". Я просто не могу понять это. Это не исключение, чтобы узнать, что ошибка

ссылка на мой пресет в xml.

https://drive.google.com/file/d/0BwaYuYfb7VCoSV9Ed0lOeUN5NDg/view

//MediaService.cs
var localPath = Environment.GetEnvironmentVariable("WEBJOBS_PATH");
var filePath = Path.Combine(localPath, "CustomPreset.xml");
string configuration = File.ReadAllText(filePath); 

var multibitrateTask = job.Tasks.AddNew("Custom Encoding Task", azureMediaEncoder, configuration, TaskOptions.None);
multibitrateTask.InputAssets.Add(mediaServiceAsset);
multibitrateTask.OutputAssets.AddNew($"Multibirate ouput for {mediaServiceAsset.Name}", AssetCreationOptions.None);

job = await job.SubmitAsync(); 

//function.cs
if (jobMessage.EventType == "JobStateChange")
{
 //try get old and new state
 if (jobMessage.Properties.Any(p => p.Key == "OldState") && jobMessage.Properties.Any(p => p.Key == "NewState"))
  {
    string oldJobState = jobMessage.Properties.First(p => p.Key == "OldState").Value.ToString();
    string newJobState = jobMessage.Properties.First(p => p.Key == "NewState").Value.ToString();

await log.WriteLineAsync(string.Format("job state has changed from {0} to {1}", oldJobState, newJobState));

string newState = jobMessage.Properties["NewState"].ToString();
     if (newState == "Finished") //<--fails here
     {
       string jobId = jobMessage.Properties["JobId"].ToString();
      var mediaServiceWrapper = new MediaServiceWrapper(_mediaServiceName, _mediaServiceKey, _azureStorageAccount);
      var result = await mediaServiceWrapper.PrepareAssetsForAdaptiveStreamingAsync(jobId); 
    }
  }
}

1 ответ

Решение

Поэтому я использовал Azure Media Encoder (AME) и теперь перешел на Media Encoder Standard (MES)

Процессор IMediaProcessor = GetLatestMediaProcessorByName("Стандарт медиа кодировщика");

Другие вопросы по тегам