Мы используем Azure Media Services V3 API для перекодирования видеофайлов различных форматов ввода в вывод mp4. Если у нас есть входной файл mxf, мы получаем следующее исключение при попытке перекодировать видео с аудиокодом c 'CopyAudio'): Azure Сообщение об ошибке Media ReEncode: Произошла ошибка. Стадия: ApplyEncodeCommand. Код: 0x00000001.
Это та же проблема, что и здесь ( Копировать аудиокод c, вызывает исключение при перекодировании видеофайла mxf ), но для API v2 Azure Media Услуги
Ответ, который дан там, действительно является решением для Azure Media Services v2. У меня проблемы с портированием на API v3. В коде мы создаем экземпляр StandardEncoderPreset (Microsoft. Azure .Management.Media.Models.StandardEncoderPreset) и пытаемся использовать код CopyAudio c. В настоящее время я не могу понять, как указать MOVFormat там.
StandardEncoderPreset preset = new StandardEncoderPreset(
codecs: new List<Codec>()
{
new H264Video
{
KeyFrameInterval = TimeSpan.FromSeconds(2),
SceneChangeDetection = true,
//PreserveResolutionAfterRotation = true,
Layers = new[]
{
new H264Layer
{
Profile = H264VideoProfile.Auto,
Level = "Auto",
Bitrate = bitrate,
MaxBitrate = bitrate,
BufferWindow = TimeSpan.FromSeconds(5),
Width = width.ToString(),
Height = height.ToString(),
BFrames = 3,
ReferenceFrames = 3,
FrameRate = "0/1",
AdaptiveBFrame = true
}
}
}, new CopyAudio()
},
// Specify the format for the output files - one for video+audio, and another for the thumbnails
formats: new List<Format>()
{
new Mp4Format()
{
FilenamePattern = "{Basename}_" + width + "x" + height +"_{Bitrate}.mp4"
}
}
При такой предустановке я получаю ту же ошибку, что и в оригинальном посте. CopyAudio имеет только свойство «Метка». Также думал, что нам нужно указать дополнительный формат в списке «Форматы», но я не могу найти класс MOVFormat (или PCMFormat).