从Azure blob存储流式传输视频

时间:2013-10-29 10:40:12

标签: video azure video-streaming azure-storage

我在Azure blob存储中存储.mp4视频时遇到问题,以便在Azure上托管的网站中显示。视频类型设置为video/mp4,存储帐户不公开,但它链接到网络角色,我使用这段代码更新了版本:

var credentials = new StorageCredentials("myaccountname", "mysecretkey"); 
var account = new CloudStorageAccount(credentials, true); 
var client = account.CreateCloudBlobClient(); 
var properties = client.GetServiceProperties(); 
properties.DefaultServiceVersion = "2012-02-12"; 
client.SetServiceProperties(properties); 

我没有使用任何视频播放器,只使用HTML5视频标签。我也不需要任何花哨的东西,我只想播放视频。

查看Chrome开发工具中的网络标签,GET请求获取视频有两个条目。第一个状态为(pending),下一个状态为(canceled)

我还给了一个链接到网站内容文件夹中的视频。这个也以pending开头,但是使用204 Partial Content解决,视频播放得很好。

我没有看到的东西,任何帮助和指示都表示赞赏。

1 个答案:

答案 0 :(得分:6)

根据您的上述评论,您需要的是Shared Access Signature。使用以下代码在mp4文件上创建共享访问签名。

        var credentials = new StorageCredentials("myaccountname", "mysecretkey");
        var account = new CloudStorageAccount(credentials, true);
        var container = account.CreateCloudBlobClient().GetContainerReference("yourcontainername");
        var blob = container.GetBlockBlobReference("yourmp4filename");
        var sas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),//Set this date/time according to your requirements
        });
        var urlToBePlayed = string.Format("{0}{1}", blob.Uri, sas);//This is the URI which should be embedded in your video player.