Неверный ввод: исходное видео имеет скорость avg_frame_rate NaN fps и r_frame_rate 90000 fps в службе мультимедиа Azure
Я пытался загрузить формат файла песни (.mp4) в медиа-сервисы. он успешно загружен, но, когда я пытался создать задание на кодирование, я получаю указанную ниже ошибку. Для нескольких файлов я получаю сообщение об ошибке ниже, а для нескольких файлов это не так. невозможно определить, в чем заключается ошибка и как решить эту проблему?
Сообщение об ошибке:
Encoding task
ErrorProcessingTask : An error has occurred. Stage: ApplyEncodeCommand. Code: System.IO.InvalidDataException.
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --->
System.IO.InvalidDataException: Bad input: the source video has an avg_frame_rate of NaN fps and r_frame_rate of 90000 fps.
Код: использование кодировки "H264 Multiple Bitrate 720p"
static public IAsset CreateEncodingJob(IAsset asset, string preset,string fileName)
{
IJob job = _context.Jobs.Create(preset + " encoding job");
var mediaProcessors =
_context.MediaProcessors.Where(p => p.Name.Contains("Media Encoder Standard")).ToList();
var latestMediaProcessor =
mediaProcessors.OrderBy(mp => new Version(mp.Version)).LastOrDefault();
ITask task = job.Tasks.AddNew(preset + " encoding task",
latestMediaProcessor,
preset,
Microsoft.WindowsAzure.MediaServices.Client.TaskOptions.ProtectedConfiguration);
task.InputAssets.Add(asset);
task.OutputAssets.AddNew(fileName + " " + preset,
AssetCreationOptions.None);
job.StateChanged += new
EventHandler<JobStateChangedEventArgs>(StateChanged);
job.Submit();
LogJobDetails(job.Id);
Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None);
progressJobTask.Wait();
if (job.State == JobState.Error)
{
throw new Exception("\nExiting method due to job error.");
}
return job.OutputMediaAssets[0];
}
Может ли кто-нибудь помочь мне в этом?
1 ответ
Нашли решение: нажмите здесь
Повторно опубликовать комментарий:
Ваши задачи кодирования не выполняются, потому что номинальная частота кадров, сообщаемая входным видео, либо слишком высока, либо слишком низка. Вам придется переопределить настройку выходной частоты кадров в предустановке кодирования. Предположим, вы знаете, что входное видео было записано со скоростью 30 кадров в секунду, а затем:
Возьмите JSON для "H264 Multiple Bitrate 720p" с https://msdn.microsoft.com/en-us/library/azure/mt269953.aspx
Отредактируйте / замените каждую запись "FrameRate": "0/1" на "FrameRate": "30/1". Обратите внимание, что необходимо заменить несколько записей.
Сохранить полученный JSON
При отправке задачи кодирования в CreateEncodingTask замените строку "preset" на весь JSON (с помощью System.IO.File.ReadAllText("song.Json"))
С уважением, Дилип.