2012-11-15 168 views
2

我们在Windows Azure上有一个Worker角色,该角色运行ffmpeg以使用MediaHandler Pro转换媒体文件。我们喜欢处理的文件保存在blob存储中,并且生成的文件也应该存储在那里。将Azure存储Blob作为文件系统访问

我们的问题是ffmpeg在本地文件上工作,而不是在blob存储的URI上。有没有什么方法可以装载blob存储容器,并直接作为文件系统访问文件?

如果这是不可能的,可以下载文件(它们可能很大,也许1-2Gb)到本地文件系统*,在那里处理它们然后上传它们。这听起来像是多余的。

*)我们已经设置了下载这个BLOB到虚拟盘中的CloudDrive

+0

我认为dunnry在这里有正确的答案。如果您不承诺使用MediaHandler,另一种选择是完全跳过编码并使用Azure媒体服务:https://www.windowsazure.com/en-us/home/features/media-services/ –

+0

我开始了使用Azure媒体服务,但我有很大的麻烦让它在Azure 1.8(Net 4.5)上运行。它也缺乏对水印和ogg/webm输出的支持,所以我决定使用ffmpeg直到它被更新。 – Martin

回答

1

你有这样做的几种方法 - 你可以创建一个云驱动器(VHD上传的页面BLOB)和挂载或者您可以在本地下载源文件并在临时(本地临时)磁盘上工作。在这两种选择中,我会在本地下载并使用暂存盘。

如果您要使用云端硬盘,则会出现3个主要问题 - 第一个问题是它是VHD,您必须将其安装以获取文件。第二个是RW只能安装1个实例,因此不能将多个工作源的编码源文件的工作保存到同一个驱动器。第三个问题是它是所有存储选项中速度最慢的。对于编码,可能不是一个很好的选择。

最好的办法是从blob存储(非常快速,顺便说一句)下载源文件到'本地资源'(aka scratch disk)并从那里开始工作。将结果文件上传到BLOB存储。

+0

谢谢,我创建了一个本地存储并下载到该目录。它似乎很好地工作。 – Martin