使用Node.js进行Azure媒体服务/处理媒体上传和流媒体

时间:2013-07-22 18:22:42

标签: node.js mongodb azure azure-media-services

我正在开发处理媒体文件(音频/视频)的服务。这些服务负责上传客户端上传的流媒体文件(IOS,Android,但不限于这些设备/平台)。

我们使用node.js和mongodb作为数据库。在不久的将来,我们的服务将成为Azure的一部分。 (我们后端的部分已经存在于Azure中)

在那种情况下,我遇到了Azure媒体服务。我知道它没有任何sdk可以用于Node.js所以我唯一的选择是使用Azure Media Services的REST服务。

我的问题是:

1)已经处理此场景的开发人员在这种情况下采用了正确的方法。我对这里的方法/实践持开放态度,并改变我目前计划做的事情。

2)如果我使用Azure Media Services。我的客户端如何调用我的服务(node.js),该服务充当调用Azure Media Services的REST服务的代理。这将如何正常工作,我有我的代理中的文件重新上传。或者我将在内部指导我的服务,以便在内部上传到媒体服务。

3)如何在媒体服务中上传这些媒体文件与MongoDB中的记录相关。就像一条记录可以有多个媒体文件。

我很欣赏这里的任何指示/解释。

谢谢,

3 个答案:

答案 0 :(得分:1)

要正确回答你的问题,很少有问题需要回答。

1.您将在azure媒体服务上提供什么功能。从您的问题来看,似乎主要目标是让用户上传资产,并使他们能够流式传输上传的内容。

为此,您需要在节点js中实施以下步骤。

资产公开ID和AlternativeID属性,您可以使用这些属性将有关内容的元数据映射到WAMS资产,并实施任何其他内容管理逻辑。

如果您有一些基于用户的身份验证,并且不希望将单独的azure媒体帐户专用于一个用户,则需要充当代理。 WAMS为资产摄取,编码,打包,按需交付以及最近的实时流媒体提供基本模块。

它可以作为您的cms系统的基础,或者您可以通过添加其他身份验证,授权层来执行SSAS提供程序。目前,您可以使用第三方产品http://www.ezdrm.com/进行播放DRM保护,或使用您自己的许可证服务器http://msdn.microsoft.com/en-us/library/windowsazure/dn223278.aspx

答案 1 :(得分:0)

我有一个小解决方案,但我认为它需要你的一些工作,也许你不会那么喜欢,如何使用Windows Azure Mobile服务。它支持立即添加NPM,我告诉您使用Windows Azure Mobile服务的原因是它将帮助您连接到您的客户端,无论使用何种应用程序平台。

http://weblogs.asp.net/scottgu/archive/2013/06/14/windows-azure-major-updates-for-mobile-backend-development.aspx

在.Net和Node Js之间进行集成,你可以先使用Edge JS或signalR开始。 http://www.infoq.com/articles/the_edge_of_net_and_node http://www.asp.net/signalr

我只是想提出一个可能有助于解决Node Js中缺乏媒体服务支持的想法,就是你使用Blob存储进行流媒体传输。毕竟媒体服务是基于我认为的Blob存储。这是一个链接,将指导您使用blob存储。

http://www.windowsazure.com/en-us/develop/nodejs/how-to-guides/blob-storage/

这里也是一个关于如何使用Node JS从blob存储流传输的问题,我希望你发现它有用。

How to stream a Windows Azure Blob to the client using Node.js? Getting contents of a streaming Blob to be sent to a Node.js Server

这里还有另一个链接可以帮助您这样做“使用Node.js媒体代理进行视频Blob的地理保护” http://msdn.microsoft.com/en-us/magazine/dn198240.aspx

只是想确保您拥有Windows Azure Node Js SDK,您可能会找到一些可以帮助您开发应用程序的解决方案。 https://github.com/WindowsAzure/azure-sdk-for-node

我希望我的回答可以帮助你告诉我你是否需要其他任何东西。

答案 2 :(得分:0)

我现在使用我们最新的 javascript Node.js SDK 为 AMS v3 API 提供了更多基于 Typescript 的示例 https://github.com/Azure-Samples/media-services-v3-node-tutorials