使用Azure Media Player按需查看Azure存储中的MP4文件

使用Azure Media Player按需查看Azure存储中的MP4文件,azure,media-player,mp4,Azure,Media Player,Mp4,我正在进行一个学校项目,并使用我对Azure access的MSDN订阅。我编写了一个程序,可以定期将MP4录制(视频监控)从专用网络上传到Azure存储 我希望能够使用Azure Media Player查看这些MP4文件。我将是唯一一个使用这条流的人,而且这只会是在非常罕见的基础上(当外出度假时)。我在Azure Media Services上玩了一会儿,似乎我能为媒体播放器找到“端点”的唯一方法就是打开一个实时流媒体频道。一旦我这样做了,它给了我一个端点,我把它放在播放器里,它按预期播放我

我正在进行一个学校项目,并使用我对Azure access的MSDN订阅。我编写了一个程序,可以定期将MP4录制(视频监控)从专用网络上传到Azure存储

我希望能够使用Azure Media Player查看这些MP4文件。我将是唯一一个使用这条流的人,而且这只会是在非常罕见的基础上(当外出度假时)。我在Azure Media Services上玩了一会儿,似乎我能为媒体播放器找到“端点”的唯一方法就是打开一个实时流媒体频道。一旦我这样做了,它给了我一个端点,我把它放在播放器里,它按预期播放我的视频。基于这个原型,我把我的项目建议书交给了我的教授,并得到了批准,作为我的学期项目(占我成绩的40%)

令我惊讶的是,两天后,我收到一封电子邮件通知,说我的Azure帐户因为我的分配超过了每月50美元而自动关闭。我很惊讶,因为我上传的文件只有5MB,在我的概念验证工作中,我只下载了两次

在查看我的账单明细时,所有这些费用似乎都来自媒体服务频道,并且似乎是基于该频道“活动”的时间。43个小时的工作几乎耗尽了我这个月的全部拨款

以下是我的问题(请记住,我是一名体面的C#开发人员,但对Azure的所有东西都非常了解):

1) 我这样做对吗?使用Azure Media Player是否需要实时流媒体频道? 2) 如果上面的回答是肯定的,我是否可以通过代码启动/停止直播服务?通过这种方式,我可以向Azure发送命令,在需要查看时唤醒频道,然后在完成时关闭频道吗? 3) 是否有其他基于html5的媒体播放器可以用于Azure文件存储,从而绕过直播频道和相关成本?
谢谢你的帮助。当我打电话给Microsoft支持部门时,他们所能做的就是向我解释账单,并引导我到这里寻求技术支持。

在标记文件并单击底部的“编辑”时,您可以将Azure Media Player直接指向mp4文件的“绝对URI”

根据您的项目描述,您已经将文件编码到mp4并上载到Azure Media Services。 您不需要创建流媒体端点并启动live channel来播放您的文件。您需要指示系统生成在定义的时间段内可访问的播放url,并在播放器中使用此url

代码示例:

        IAsset asset =_mediaContext.Assets.Where(c=>c.Name="Your MP4 Asset").First();

        IAccessPolicy accessPolicy = _mediaContext.AccessPolicies.Create("Read15Min", TimeSpan.FromMinutes(15), AccessPermissions.Read);           

        ILocator locator = _mediaContext.Locators.CreateLocator("ReadOnlyLocator", LocatorType.Sas, asset, accessPolicy, startTime: null);

        var uribuilder = new UriBuilder(locator.Path);
        uribuilder.Path += "/" + asset.AssetFiles.First().Name;
        var fileUri = uribuilder.ToString();
要测试它是否实际工作,只需转到并将fileUri的值粘贴到Url输入文本框


如果您认真对待安全性,我建议您阅读并动态加密内容以使用令牌身份验证。在我的演示中,我演示了如何将ASP.NET MVC应用程序中的Azure广告验证与Azure Media Services集成,以保护您的内容

看起来你只需要在离线模式下观看这些录音,而不需要直播。这是正确的吗?我想你之所以能如此大量地使用信用卡,是因为你一直开着一个流媒体单元。即使你不使用它们,它们也要花钱。我确实玩过这些流媒体的东西——让我在本周晚些时候回来看看,当我在工作的时候,我有我的笔记@高拉夫:我不太清楚离线模式是什么-但是的,我认为你是正确的。录音(长度为3分钟)将存储在Azure中以备将来查看。@Sander:是的,这对我来说是一个惊喜,并且没有记录(我可以看到)。我想,和大多数web服务一样,计费是基于实际使用情况的。谢谢Magnus。我能够在Azure存储中复制mp4内容的url。我将该url粘贴到Azure Media Player中,并收到“由于损坏问题或您的浏览器不支持使用的视频功能(0x5040000),视频播放被中止”。我在IE11或Chrome v43中收到了相同的错误。@WadeBee,如果你下载它并用另一个视频播放器播放,视频会正常工作?我在这里发现了问题。我需要修改公共读取访问权限(设置为off)。有一次,Magnus在Azure Media Player中使用绝对Uri的解决方案奏效了。谢谢谢谢你,乔治。我将此标记为答案,因为它还提供工作代码。我需要对3号线做个小改动。当我向CreateLocator提供第一个字符串参数参数时,我收到一条错误消息:locator Id无效。请确保使用以下格式:“nb:lid:UUID:”使用以下格式更正了问题:
ILocator locator=\u mediaContext.Locators.CreateLocator(LocatorType.Sas,asset,accessPolicy,startTime:null)