我正在尝试从Azure Blob存储中提供MP4视频内容。通过确保Blob的内容类型设置为video/mp4
,我可以在现代浏览器中播放视频;但是我无法向后寻求。
将相同的视频放入S3存储桶会产生所需的结果,因此我排除了内容的问题。
我是否需要以特定方式配置存储角色以提供视频内容?
答案 0 :(得分:10)
我不清楚@ 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);
答案 1 :(得分:5)
您可以尝试将存储帐户的默认版本设置为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。它改进了范围请求的一些内容(可能是浏览器中的渐进式下载正在进行的操作)。我没有听到任何关于视频播放的具体内容,但尝试不会有什么坏处。 : - )
答案 2 :(得分:0)
我尝试直接从HTML5视频元素中播放一个非常小的MP4编码blob并启用控件,我可以使用该控件来回滚动我的视频。
视频内容的大小是多少?您还可以使用Fiddler检查HTTP标头以验证它们是否符合预期,或者当您使用S3存储桶中的相同blob时它们是否完全相同?
如果您可以分享您的blob链接,我可以快速尝试,看看可能是什么问题。
答案 3 :(得分:0)
你可以通过Powershell做到这一点。以下是Azures ARM的示例(非经典,但您可以轻松转换)。
IRR
答案 4 :(得分:0)
对于任何从Google来这里的人:
Azure有两种类型的存储帐户:StorageV1/V2 (default option selected when making new account) and BlobStorage。
虽然StorageV2选项可能具有更多功能,但它不支持partial content requests
,这意味着Chrome浏览器将不允许视频搜索。
您可以通过导航到“存储帐户”>“属性”>“帐户类型”来确定Azure门户中的存储类型