12

我正在尝试从 Azure Blob 存储提供 MP4 视频内容。通过确保将 Blob 的内容类型设置为;我可以让视频在现代浏览器中播放video/mp4;但是我无法向后寻求。

将相同的视频放入 S3 存储桶会产生所需的结果,因此我排除了内容的问题。

我是否需要以特定方式配置存储角色来提供视频内容?

4

6 回答 6

15

从@smarx 的回答中我不清楚如何为我的 blob 容器设置它 - 但经过一番谷歌搜索后,我找到了下面的代码。只需在 LINQPad 中执行它,视频就会开始流式传输:

var storageAccount = CloudStorageAccount.Parse("AccountName=<accountName>;AccountKey=<accountKeyBase64>;DefaultEndpointsProtocol=http");
var blobClient = storageAccount.CreateCloudBlobClient();

// Get the current service properties
var serviceProperties = blobClient.GetServiceProperties();

// Set the default service version to 2011-08-18 (or a higher version like 2012-03-01)
serviceProperties.DefaultServiceVersion = "2011-08-18";

// Save the updated service properties
blobClient.SetServiceProperties(serviceProperties);
于 2013-03-01T20:43:12.953 回答
5

You may try setting the default version for your storage account to 2011-08-18: http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-blobs-improved-http-headers-for-resume-on-download-and-a-change-in-if-match-conditions.aspx. It improves a couple things around range requests (probably what progressive download in your browser is doing). I haven't heard anything specific about video playback, but it can't hurt to try. :-)

于 2012-07-19T20:13:29.293 回答
3

对于从谷歌来到这里的任何人:

Azure 有两种类型的存储帐户:StorageV1/V2(创建新帐户时选择的默认选项)和 BlobStorage

虽然 StorageV2 选项可能具有更多功能,但它支持partial content requests,这意味着 Chrome 将不允许视频搜索。

您可以通过导航到存储帐户 > 属性 > 帐户类型来识别 Azure 门户中的存储类型

于 2019-02-26T18:48:51.640 回答
2

对于想要使用 Azure CLI 的任何人:

az storage account blob-service-properties update --account-name [account_name] --default-service-version '2020-10-02'
于 2021-10-13T00:02:41.360 回答
0

我尝试直接从启用了控件的 HTML5 视频元素播放一个非常小的 MP4 编码 blob,我可以使用控件来回滚动我的视频。

您的视频内容的大小是多少?您还可以使用 Fiddler 检查 HTTP 标头以验证它们是否是预期的,或者当您使用 S3 存储桶中的相同 blob 时它们是否完全匹配?

如果您可以共享您的 blob 链接,我可以快速尝试一下,看看可能是什么问题。

于 2012-07-19T19:25:08.153 回答
0

您可以通过 Powershell 来完成。这是 Azures ARM 的示例(不是经典的,但您可以轻松转换它)。

Select-AzureRmSubscription -SubscriptionName "subscription" $Name = 'storageaccountname' $resourcegroup = 'resourcegroup'

$sp = New-Object -TypeName Microsoft.WindowsAzure.Storage.Shared.Protocol.ServiceProperties 

$sp.DefaultServiceVersion = "2017-04-17" $key = (Get-AzureRMStorageAccountKey -StorageAccountName $Name
-ResourceGroupName $resourcegroup).Value[1]

$context = New-AzureStorageContext -StorageAccountName $Name
-StorageAccountKey $key

$blobClient = $context.StorageAccount.Create
于 2017-07-21T13:22:46.533 回答