Перекодирование видеофайла MXF с помощью CopyAudio в Azure Media Services v3 - PullRequest
3 голосов
/ 23 января 2020

Мы используем 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).

1 Ответ

1 голос
/ 23 января 2020

Наши API v3 еще не поддерживают запись в формат выходного файла MOV. Для таких заданий вам потребуется go с API v2.

...