我的目标是允许用户上传未在本地存储在磁盘上的视频。我将用于将视频上传到Azure媒体服务的所有示例都只显示了正在上传的本地磁盘中的文件。 所以我决定尝试之前在Stackoverflow上提到的方法,即首先将视频上传到Azure BLOB存储,然后从此处将视频上传到Azure媒体服务。 到目前为止,我已成功将视频上传到Azure BLOB存储,但我不确定如何将此视频传输到Azure媒体服务。 无论如何只是将存储的视频URI传递给Azure媒体服务? 我已经看到了将整个存储容器复制到Azure Media服务的示例,但我想在逐个视频的基础上进行复制。 有没有人知道任何解释这些步骤的体面教程?
答案 0 :(得分:0)
Asset实体包含数字文件(包括视频,音频,图像,缩略图集,文本轨道和隐藏式字幕文件)以及有关这些文件的元数据。将数字文件上载到资产后,可以将它们用于媒体服务编码和流式传输工作流程。
如果我理解正确,您的问题涉及如何在没有大多数教程使用的示例的情况下通过从磁盘读取文件来解决Azure Media Services中的实体。据我所知,下面的C#行将返回一个IAsset对象,该对象引用上传到Blob存储的blob。
IAsset inputAsset = UploadFile(@"C:\VideoFiles\BigBuckBunny.mp4", AssetCreationOptions.None);`
此操作的结果也可能来自用户上传,您可以在自己的Web应用程序中实现此操作。要在以后访问此视频,您应该存储此AssetId。在您的情况下,您希望以与此类似的方式使用存储的资产ID:
CloudMediaContext context = new CloudMediaContext("%accountName%","%accountKey%");
string sourceAssetId = "%sourceAssetId%";
IAsset sourceAsset = context.Assets.Where(a => a.Id == sourceAssetId).First();
现在,您已通过Azure Media Services的AssetId检索了资产。您可以在其上运行编码,或为其检索发布URL。
来源: https://github.com/Azure/azure-sdk-for-media-services-extensions https://azure.microsoft.com/en-us/documentation/articles/media-services-dotnet-get-started/#encode-the-source-file-into-a-set-of-adaptive-bitrate-mp4-files
答案 1 :(得分:0)
您要做的是创建一个Azure Media Streamer的新实例,当您这样做时,只需指向您当前的Blob存储帐户,不要创建新帐户。强>
默认情况下,AMS会在您首次向其上传视频时创建新的blob存储帐户。
I have a tutorial series on Azure Media Services.
我以与您相同的方式将视频上传到我的Blob存储帐户,以便我可以将它们放在指定的容器中。否则,当您只使用AMS时,它将为您创建一个包含随机字符的容器。
如果您需要更多详细信息,请与我们联系。
答案 2 :(得分:0)
是否只是将存储的视频URI传递给Azure媒体服务?
是。你有两个选择。 你可以:
我已经看到了将整个存储容器复制到Azure Media服务的示例,但我希望逐个视频地进行此操作。
是的,您可以在容器中指定blob。请参阅"从blob创建资产"此处https://github.com/Azure/azure-sdk-for-media-services-extensions