如何使用Azure Media Services v3生成从.mp3(或其他纯音频)文件编码的.mp4空白或空白视频图层?

问题描述 投票:1回答:1

Problem summarized

我们将Azure Media Services v3用于Azure Media Player的流媒体文件。目前我正在尝试添加一个使用AES加密流式传输.mp3的选项。上传和编码文件工作正常,我可以看到生成的.mp4文件,我甚至可以播放它,如果我从blob下载它。问题是,当我尝试在Azure Media Player中流式传输时,我在播放器中收到以下错误:image这是因为Azure Media Player不支持仅在流媒体音频文件,因为它在documentation中声明:

可能适用于Adaptive Streaming的某些技术,但目前不支持,但在AzureHtml5JS中不起作用。

What I've tried

所以我试图将空白/空h264Layer添加到转换作业,因此编码文件不会是纯音频的。我发现了一些关于这个问题的问题,like this,但我的问题仍未得到解决。我还找到了this suggestion,它引导我进入Azure Media Services v2文档页面,但我认为这不是我需要的。我也看过这个说明:

Media Encoder Standard的许多高级Media Services v2功能目前在v3中不可用。有关更多信息,请参阅功能差距。

我将编码预设设置为“EncoderNamedPreset.AACGoodQualityAudio”。然后到“EncoderNamedPreset.H264SingleBitrate720p”只是为了看它是否创建了一个空的视频图层但结果是相同的:视频文件是在自己的资产中创建的,但我无法对其进行流式处理。

我试图用空H264Layer创建我自己的编码器预设,如下所示:

new StandardEncoderPreset(
    codecs: new Codec[]
    {
        new AacAudio(
            channels: 2,
            samplingRate: 48000,
            bitrate: 128000,
            profile: AacAudioProfile.AacLc
            ),
        new H264Video(
            keyFrameInterval: TimeSpan.FromSeconds(2),
            sceneChangeDetection: true,
            layers: new H264Layer[]
            {
                new H264Layer (
                    bitrate: 1, // Units are in bits per second
                    width: "1",
                    height: "1",
                    label: "SD" // This label is used to modify the file name in the output formats
                )                            }
            )
    },
    formats: new Format[]
    {
        new Mp4Format(filenamePattern:"Video-{Basename}-{Label}-{Bitrate}{Extension}")
    }
)

创建Transform时的结果:

例外:操作返回了无效的状态代码'BadRequest'

有空白图层

new H264Layer (
    bitrate: 0, // Units are in bits per second
    width: "0",
    height: "0",
    label: "SD" // This label is used to modify the file name in the output formats
)  

创建转换时的结果:

例外:操作返回了无效的状态代码'BadRequest'

H264Layer没有构造函数参数

new H264Layer()

结果:创建转换。尝试流式传输时AMP中的错误相同。

由于存在损坏问题或视频使用了浏览器不支持的功能,视频播放已中止。 (0x20400003)

Expected result

预期的结果将是Azure Media Player可以流式传输的任何类型的文件。我想这应该以某种方式实现为编码文件添加空白/空H264层,但我无法弄清楚如何在Azure Media Services v3中执行此操作。

c# azure video-streaming audio-streaming azure-media-services
1个回答
0
投票

将离线传送的响应添加到此帖子中:

  1. 你是对的,Azure Media Player目前需要一个视频轨道
  2. 使用v2 API时,有一种方法可以在编码纯音频源时插入视频轨道
  3. 该标志当前未在我们的v3架构中公开

但是,应该能够使用像AdaptiveStreaming这样的v3 Preset - 它对音频进行编码,并生成“空白视频”轨道

谢谢,

阿尼尔

© www.soinside.com 2019 - 2024. All rights reserved.