我们将Azure Media Services v3用于Azure Media Player的流媒体文件。目前我正在尝试添加一个使用AES加密流式传输.mp3的选项。上传和编码文件工作正常,我可以看到生成的.mp4文件,我甚至可以播放它,如果我从blob下载它。问题是,当我尝试在Azure Media Player中流式传输时,我在播放器中收到以下错误:image这是因为Azure Media Player不支持仅在流媒体音频文件,因为它在documentation中声明:
可能适用于Adaptive Streaming的某些技术,但目前不支持,但在AzureHtml5JS中不起作用。
所以我试图将空白/空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)
预期的结果将是Azure Media Player可以流式传输的任何类型的文件。我想这应该以某种方式实现为编码文件添加空白/空H264层,但我无法弄清楚如何在Azure Media Services v3中执行此操作。
将离线传送的响应添加到此帖子中:
但是,应该能够使用像AdaptiveStreaming这样的v3 Preset - 它对音频进行编码,并生成“空白视频”轨道
谢谢,
阿尼尔