用户上传视频文件并使用Django和Python提供服务
我需要处理用户上传的任何视频文件,把它转换成flv或webM格式,然后再展示给用户。经过一些研究,我发现必须使用ffmpeg来进行转换,但我不太确定如何处理整个流程。具体来说:
- 获取用户刚上传的文件。
- 在django的后台,怎么把这个文件发送去处理呢?
- 处理完成后,删除用户上传的原始文件,并用转换后的文件替换它。
我只知道这些大致的步骤,但不太清楚如何把每一步连接起来,让整个流程顺畅进行。比如,如何从python中启动一个系统调用去执行ffmpeg,并且一直等到转换完成?还有,如何更新数据库,让它指向新的转换文件,并删除旧的文件?怎么实时告诉用户文件正在转换,比如显示一个进度条?
我知道这个问题有点宽泛,但任何部分的帮助都非常感谢!
1 个回答
3
如果一个转换过程需要很长时间,你可能想要考虑把它交给一个任务处理器来处理:
这个工具可能正合适。在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的文档中,有关于进程间通信等内容的部分。我相信你可以找到相关信息。