2016-10-31 4 views
0

Ich verwende Webjob in azurblauen Web-Service, um die Codierung des Videos zu verarbeiten und Standardvorgabe nicht die VVS (Video rotierendes Problem) und trimmen Video-Option.Azure Media Service Transcoding mit benutzerdefinierten Voreinstellung

Wenn ich die benutzerdefinierte Voreinstellung verwende, wird sie fehlschlagen und der Auftragsstatus ändert sich von 'Geplant' zu 'Verarbeitung' und dann zu 'Fehler' anstatt 'Fertig'. Ich kann es einfach nicht herausfinden. Es gibt keine Ausnahme zu wissen, was der Fehler entweder

Link zu meiner Voreinstellung in XML ist.

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); 
    } 
    } 
} 
+0

Können Sie den zugehörigen Code hinzufügen? Arbeitet es mit einer einfachen Konsolen-App? Nur fehlgeschlagen mit Webjob? lokal bei der Bereitstellung? – Thomas

+0

Danke deinen Kommentar, ich habe es nicht mit der Konsolen App ausprobiert, ich habe es mit dem Webjob auf azurblau versucht. Ich hatte die Standard-Codierung funktioniert aber nicht, wenn ich benutzerdefinierte Voreinstellung mit Xml oder Json versucht. – wil

+0

Ich finde ein [Dokument] (https://azure.microsoft.com/en-us/documentation/articles/media-services-check-job-progress/), das darüber spricht, wie man den Job-Prozess überwacht. Versuchen Sie bitte, die Jobdetailfehlermeldung abzufangen. Hoffe, es kann helfen, es zu debuggen. –

Antwort

0

so war ich Azure Media Encoder (AME) mit und jetzt bin ich auf Media Encoder Standard (MES)

IMediaProcessor Prozessor = GetLatestMediaProcessorByName ("Media Encoder Standard");