Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用Azure Media Services v3将空的或空白的videolayer生成到.mp4,该文件是从.mp3(或其他仅限音频)文件编码而来的? 总结问题_C#_Azure_Video Streaming_Audio Streaming_Azure Media Services - Fatal编程技术网

C# 如何使用Azure Media Services v3将空的或空白的videolayer生成到.mp4,该文件是从.mp3(或其他仅限音频)文件编码而来的? 总结问题

C# 如何使用Azure Media Services v3将空的或空白的videolayer生成到.mp4,该文件是从.mp3(或其他仅限音频)文件编码而来的? 总结问题,c#,azure,video-streaming,audio-streaming,azure-media-services,C#,Azure,Video Streaming,Audio Streaming,Azure Media Services,我们正在使用Azure Media Services v3与Azure Media Player一起用于流媒体文件。目前,我正在尝试使用AES加密向stream.mp3添加一个选项。 上传和编码文件的工作很好,我可以看到生成的.mp4文件,我甚至可以播放它,如果我从blob下载它。问题是,当我尝试在Azure Media Player中对其进行流式处理时,在播放器中出现以下错误: 这是因为Azure Media Player不支持仅流式音频文件,正如其: 可能在某些技术中适用于自适应流媒体,但目

我们正在使用Azure Media Services v3与Azure Media Player一起用于流媒体文件。目前,我正在尝试使用AES加密向stream.mp3添加一个选项。 上传和编码文件的工作很好,我可以看到生成的.mp4文件,我甚至可以播放它,如果我从blob下载它。问题是,当我尝试在Azure Media Player中对其进行流式处理时,在播放器中出现以下错误: 这是因为Azure Media Player不支持仅流式音频文件,正如其:

可能在某些技术中适用于自适应流媒体,但目前不受支持,并且在AzureHtml5JS中不起作用

我试过的 因此,我尝试将空白/空H264层添加到转换作业中,这样编码的文件就不会只是音频了。我发现了一些关于这个问题的问题,但是我的问题仍然没有解决。 我还发现了,这让我进入了Azure Media Services v2文档页面,但我认为这不是我需要的。 我也看到了这张纸条:

媒体编码器标准的许多高级媒体服务v2功能目前在v3中不可用。有关详细信息,请参见要素间距

我将编码预设设置为“encoderNamePreset.AACGoodQualityAudio”。然后转到“EncoderNamedPreset.h264 SingleBitrate720p”,看看它是否创建了一个空的视频层,但结果是一样的:视频文件是在它自己的资源中创建的,但我无法流式传输它

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

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}")
    }
)
创建转换时的结果:

异常:操作返回无效的状态代码“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”

H264不带构造函数参数的层

new H264Layer()
结果: 转换被创建。 尝试流式传输时,AMP中出现相同错误

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

预期结果
预期结果将是Azure Media Player可以流式传输的任何类型的文件。我想这应该是通过在编码文件中添加一个空白/空的H264层来实现的,但我不知道如何在Azure Media Services v3中做到这一点。

将离线传递的响应添加到本文:

  • 您是对的,Azure Media Player当前需要视频 跟踪
  • 使用v2 API时,有一种方法可以在编码仅音频源时插入视频曲目
  • 该标志目前未在我们的v3模式中公开
  • 但是,应该能够使用v3预设,如AdaptiveStreaming–它对音频进行编码,并生成“空白视频”曲目

    谢谢

    阿尼尔