使用blender和twisted(python)的服务器端渲染

2024-04-16 06:30:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做的项目基本上是接收一个图像,然后从命令行使用blender渲染一个视频。目前我正在使用Twisted来处理请求,但是肯定有一些事情我做错了,因为它没有按照我希望的方式工作。您可以看到程序here的jist(我去掉了任何不必要的内容)。在

blender渲染是通过生成一个子进程(我知道Twistedcan handle processes)和一个python script来配置渲染并使用作为纹理提供的图像。在

程序需要能够处理尽可能多的连接。目前,子进程一次只进行一次渲染,但理想情况下它会检查CPU/并行渲染的数量,并将数量调整到最佳值。每个渲染都是为用户自定义的,因此一旦用户渲染完成,他们应该获得他们的渲染(一个avi文件)。在

我的问题是:扭曲是正确的选择吗?还有其他选择吗?如果没有,我的系统执行是否有缺陷?如果您对此有任何想法或意见,我将不胜感激!在


Tags: 项目命令行用户图像程序内容数量视频
1条回答
网友
1楼 · 发布于 2024-04-16 06:30:52

Is Twisted the right choice for this?-也许。在

Are there other options?-是的。在

If not, is my implementation of the system flawed?-是的。在我看来,您的子进程调用正在阻塞:p.wait()

在Twisted中,你可以做听起来像是要做的事情,但你离它还有很长的路要走。在

您需要一个具有web前端的速率控制的异步任务队列。在

你得到的是一个单线程“站点”上的一个页面,在提交的作业完成之前不会返回任何html。在

这在twisted中是可能的。不过,使用django+celeri可能更容易实现。在

Django:http://www.djangoproject.com/
芹菜:http://celery.github.com/celery/getting-started/introduction.html

以及类似目的的教程:
http://webcookies.org/blog/2009/09/10/rabbitmq-celery-and-django/

相关问题 更多 >