【问题标题】:Converting video files uploaded by user & serving it using django, python转换用户上传的视频文件并使用 django、python 提供服务
【发布时间】:2011-01-24 04:20:07
【问题描述】:

我需要把用户上传的任何视频文件,转换成flv或webM,然后显示给用户。现在经过一些研究,我得出结论,我必须使用 ffmpeg 进行转换,但我不确定如何处理整个管道。即,

  1. 获取用户刚刚上传的文件。
  2. 在 django 后端以某种方式发送文件进行处理?
  3. 处理完成后,删除用户上传的原始文件并替换为转换后的文件。

我只知道这些宽泛的步骤,但喜欢如何以简化的方式连接每个步骤?例如如何从 python 在 CLI 上启动对 ffmpeg 的系统调用并继续等待转换过程完成。此外,如何将数据库更新为现在指向新转换的文件并删除旧文件。如何告诉用户(实时)文件已转换,正在转换等,如进度条?

我知道这是一个总体问题,但任何/所有方面的帮助都会很棒!

【问题讨论】:

    标签: python django video ffmpeg video-encoding


    【解决方案1】:

    如果转换需要很长时间,您可能需要考虑将它们传递给任务处理程序:

    http://celeryproject.org/

    可能就是这样。 python中的系统调用可以通过os模块中的函数来完成,比如os.system:

    >>> os.system("/bin/ls")
    api-manual.pdf  C++  GUI  Java  README
    

    或 os.popen:

    >>> f=os.popen("/bin/ls")
    >>> f.read()
    'api-manual.pdf\nC++\nGUI\nJava\nREADME\n'
    >>> f.close()
    

    python 文档中有一个关于进程间通信等的部分。我确定。

    【讨论】:

    • 感谢您的建议。我最终使用 Celery + RabbitMQ 和 subprocess.Popen 来实际创建转换任务。之前没有在自动化整个管道方面工作过,所以这有点吓人,但我会活下来。 :)
    猜你喜欢
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    • 2016-10-22
    • 1970-01-01
    • 2012-07-05
    相关资源
    最近更新 更多