【问题标题】:processing large number of files - any library or utility to help?处理大量文件 - 任何库或实用程序可以提供帮助?
【发布时间】:2010-11-21 14:54:43
【问题描述】:

我想处理大量文件 - 想想视频转码,比如 youtube,您必须将所有内容转换为 FLV 格式或图像处理,您可以从大型 RAW 文件创建缩略图。

是否有任何服务或图书馆可以帮助进行此类处理?我不是指实际的转码,而是组织、启动任务、监控它们并以某种方式处理错误。

最好在 windows 上,但 linux 也可以。

更新:我希望实用程序/lib 在更高级别处理此类任务。调度多个进程,以某种方式处理和报告任何故障等。

所以,在转码的情况下,我希望这样的 lib/utility 获取要转码的文件列表,然后它会处理在多个线程/进程中启动转码。您将能够定义成功完成任务后要做什么。如果发生故障,您也可以这样做。

【问题讨论】:

    标签: .net scalability batch-processing


    【解决方案1】:

    如果我要这样做,我会创建一个 .NET 程序来查看传入文件的目录,然后根据文件类型触发 http://ffmpeg.org/ 之类的东西,将视频转换为输出目录或图像使用 ImageMagick 之类的东西。

    监控进程可能需要一些思考,尽管应该可以关注您创建的 shell 任务,或者至少检查输出目录中您期望创建的文件。

    【讨论】:

      【解决方案2】:

      命令 shell(Windows 上的命令提示符,Unix 上的 sh/bash/csh 等)和脚本语言都可以对匹配某种模式的所有文件执行相同的操作。

      例如,在 Windows 2000 或更高版本上:

      for %f in (*.jpg) do ...(例如调用imagemagick的convert生成缩略图)

      要获得for 帮助,请在命令提示符处执行for /?

      如果您想利用并行性,例如一次分拆六个以利用所有六个 CPU 内核,然后您可以使用在 Windows 上也可用的 unix 'make' 程序。您必须创建一个 Makefile 指定您想要做什么,并使用 --jobs switch 执行 make

      make 方法的一种替代方法是使用脚本语言。许多脚本语言很容易支持一次运行多个子进程,例如Python 的Popen()

      【讨论】:

        猜你喜欢
        • 2011-06-18
        • 2013-09-04
        • 2011-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-14
        • 1970-01-01
        • 2011-09-21
        相关资源
        最近更新 更多