转码 mxf 视频文件时复制音频编解码器抛出异常

Copy audio codec throws exception when transcoding mxf video file

我们正在使用 Azure 媒体服务(MES 处理器)将各种输入格式的视频文件转码为 mp4 输出格式。 如果我们有一个 mxf 输入文件,我们在尝试转码视频时会收到以下异常(带有选项 copyAudioAzure Media ReEncode error message: An error has occurred. Stage: ApplyEncodeCommand. Code: 0x00000001.

此异常消息相当笼统,并没有提供太多关于其原因的见解。 非常感谢您知道如何保留原始音频,而仅对视频进行转码。

配置:

{
    "Version": 1.0,
    "Sources": null,
    "Codecs": [
        {
            "Type": "H264Video",
            "KeyFrameInterval": "00:00:02",
            "SceneChangeDetection": true,
            "PreserveResolutionAfterRotation": true,
            "H264Layers": [
                {
                    "Type": "H264Layer",
                    "Profile": "Auto",
                    "Level": "Auto",
                    "Bitrate": 6221,
                    "MaxBitrate": 6221,
                    "BufferWindow": "00:00:05",
                    "Width": 1920,
                    "Height": 1080,
                    "BFrames": 3,
                    "ReferenceFrames": 3,
                    "FrameRate": "0/1",
                    "AdaptiveBFrame": true
                }
            ]
        },
        {
            "Type": "CopyAudio"
        }
    ],
    "Outputs": [
        {
            "FileName": "{Basename}_{Width}x{Height}.mp4",
            "Format": {
                "Type": "MP4Format"
            }
        }
    ]
}

请注意 copyAudio 类型的代码。我们对那个特别感兴趣,以保留原始音频,同时降低视频质量。

{
    "Type": "CopyAudio"
}

CopyAudio 编解码器(选项)的文档很糟糕。我们发现它是这个例子的一部分 in the Microsoft docs。 当使用相同的配置时,它对各种不同的输入文件都按预期工作,没有错误(mov、wmv、avi...)。视频质量降低,但音频得以保留。

有关 mxf 文件的其他信息是它由 8 个音频流组成,每个音频流具有 1 个通道。

文件已使用以下立体声编解码器正确转码,例如:

{
      "Profile": "AACLC",
      "Channels": 2,
      "SamplingRate": 48000,
      "Bitrate": 128,
      "Type": "AACAudio"
}

为了将 CopyAudio 用于带有 PCM 音频的 MXF 文件,CopyAudio 需要指定支持 PCM 音频的格式。修改后的 CopyAudio 如下所示:

{
    "Type": "CopyAudio",
    "Format": {
        "Type": "MOVFormat"
    }
}