【发布时间】:2015-04-21 23:41:15
【问题描述】:
我想使用 celery 对用户上传的视频进行转码。我想首先我应该上传视频,然后生成一个 celery 任务进行转码。
tasks.py 中可能是这样的:
subprocess.call('ffmpeg -i path/.../original path/.../output')
刚刚完成First steps with celery,很困惑如何在views.py 和tasks.py 中完成。这也是一个很好的解决方案吗?我非常感谢您的帮助和建议。谢谢。
models.py:
class Video(models.Model):
user = models.ForeignKey(User)
title = models.CharField(max_length=100)
original = models.FileField(upload_to=get_upload_file_name)
mp4_480 = models.FileField(upload_to=get_upload_file_name, blank=True, null=True)
mp4_720 = models.FileField(upload_to=get_upload_file_name, blank=True, null=True)
privacy = models.CharField(max_length=1,choices=PRIVACY, default='F')
pub_date = models.DateTimeField(auto_now_add=True, auto_now=False)
我不完整的views.py:
@login_required
def upload_video(request):
if request.method == 'POST':
form = VideoForm(request.POST, request.FILES)
if form.is_valid():
if form.cleaned_data:
user = request.user
#
#
# No IDEA WHAT TO DO NEXT
#
#
return HttpResponseRedirect('/')
else:
form = VideoForm()
return render(request, 'upload_video.html', {
'form':form
})
【问题讨论】:
标签: django ffmpeg django-views celery celery-task