我的目标是允许用户上传未本地存储在磁盘上的视频 . 我见过的将视频上传到Azure媒体服务的所有示例都只显示正在上传的本地磁盘中的文件 . 所以我决定尝试之前在Stackoverflow上提到的方法,它首先将视频上传到Azure BLOB存储,然后从这里将视频上传到Azure媒体服务 . 到目前为止,我已成功将视频上传到Azure BLOB存储,但我不确定如何将此视频传输到Azure媒体服务 . 无论如何只是将存储的视频URI传递给Azure媒体服务?我已经看到了将整个存储容器复制到Azure Media服务的示例,但我想在逐个视频的基础上进行 . 有没有人知道任何解释这些步骤的体面教程?
3 回答
如果我理解正确,您的问题涉及如何在没有大多数教程使用的示例的情况下通过从磁盘读取文件来解决Azure媒体服务中的实体 . 据我所知,以下C#行将返回一个IAsset对象,该对象引用上传到Blob存储的blob .
此操作的结果也可能来自用户上传,您可以在自己的Web应用程序中实现此操作 . 要稍后访问此视频,您应该存储此AssetId . 在您的情况下,您希望以与此类似的方式使用存储的资产ID:
现在,您已通过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
您要做的是创建一个Azure Media Streamer的新实例,当您这样做时,只需指向您当前的Blob存储帐户,并且 not have it create a new one.
默认情况下,AMS会在您首次向其上传视频时创建新的blob存储帐户 .
I have a tutorial series on Azure Media Services.
我以与您相同的方式上传视频 - 首先上传到我的Blob存储帐户,以便我可以将它们放在指定的容器中 . 否则,当您只使用AMS时,它将为您创建一个包含随机字符的容器 .
如果您需要任何进一步的细节,请告诉我 .
是 . 你有两个选择 . 你可以:
将其作为文件流而不是路径字符串传递(存在重载)或
创建一个blobtrigger函数/ webjob,它可以创建资产并在上传时直接从blob进行编码 . https://docs.microsoft.com/en-us/azure/media-services/media-services-dotnet-how-to-use-azure-functions
是的,您可以在容器中指定blob . 请参见"Create an Asset from a blob"部分https://github.com/Azure/azure-sdk-for-media-services-extensions