繁体   English   中英

在 Azure Blob 存储中查找音频文件

[英]Seek in Audio File in Azure Blob Storage

我在 Azure Blob 存储中有不同类型的音频文件(wav、mp3...)。 我想要 stream 他们,但我也想从音频文件中的特定 position 来 stream 他们。 因此,例如,我希望 stream 从文件的 0:00 秒开始,另一个从文件的 01:15 秒开始。

这有可能吗? 我知道有方法“DownloadRangeToStream”。 这种方法可能吗? 即使这有效,我认为偏移量也会有问题,因为文件的 Header 丢失了,对吗?

我将不胜感激任何输入!

感谢您的帮助,新陈代谢

Azure Blob存储不支持流传输,它仅支持渐进式下载 了解这些是很好的。 因为只有流媒体支持搜索。 渐进式下载不支持搜索。

如果您正在开发自己的播放器,则可以使用那些DownloadRangeToStream方法,但是我真的对结果表示怀疑。 对于具有查找功能的真实流,您将必须使用Azure媒体服务 媒体服务支持广泛的流媒体功能,包括平滑流媒体,固定比特率流媒体,渐进式下载,Apple HTTP自适应流媒体(Apple HLS流媒体)等。

默认情况下,Azure Blob存储服务使用最早的版本 ,该版本的日期为2009-09-19。 此版本不支持字节范围,因此查找不起作用。

您可以通过多种方式切换到最新版本:

  1. 通过HTTP REST API使用Set Blob服务属性
  2. 使用Plasma / AzureBlobUtility

    BlobUtility.exe -k <AccessKey> -a <StorageName> -c <ContainerName> --setDefaultServiceVersion 2015-02-21

  3. 编写您自己的程序,并使用Windows Azure Storage包中的CloudBlobClient.SetServiceProperties函数

编辑您可以在此处阅读更多内容,从Azure Blob存储提供视频内容,以及在Azure Blobs上托管渐进式下载视频

Azure Blob Storage API 的默认版本不会在响应中返回Accept-Ranges: Bytes header,这会阻止音频文件被搜索。

您可以将默认的 Blob 存储 API 版本更改为 PowerShell,如下所示:

$context = New-AzStorageContext `
    -StorageAccountName <yourAccount> `
    -StorageAccountKey <key>

Update-AzStorageServiceProperty `
    -ServiceType Blob `
    -DefaultServiceVersion 2021-04-10 `
    -Context $context

注意:即PowerShell Az module要安装。 您还可以使用旧的AzureRM module ,在这种情况下,您的命令将分别为New-AzureStorageContextUpdate-AzureStorageServiceProperty

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM