Python 无法下载在django中使用moviepy创建的视频

Python 无法下载在django中使用moviepy创建的视频,python,django,moviepy,Python,Django,Moviepy,我正在尝试导入视频,添加水印,然后使用moviepy在django中下载处理过的视频。 问题是,通过指定计算机驱动器的绝对路径,我可以将处理后的视频保存到计算机。但是,我一直无法下载这段经过处理的视频。我曾尝试在互联网上进行研究。然而,直到现在,运气都不好。 下面是我的代码: 视图.py from django.shortcuts import render import numpy as np from .forms import UploadFileForm import tempfile

我正在尝试导入视频,添加水印,然后使用moviepy在django中下载处理过的视频。 问题是,通过指定计算机驱动器的绝对路径,我可以将处理后的视频保存到计算机。但是,我一直无法下载这段经过处理的视频。我曾尝试在互联网上进行研究。然而,直到现在,运气都不好。 下面是我的代码:

视图.py

from django.shortcuts import render
import numpy as np
from .forms import UploadFileForm
import tempfile
import os
from django.core.files.storage import default_storage
from django.http import HttpResponse
from django.core.files.storage import FileSystemStorage
import sys
import moviepy.editor as mp


from .utils import CFEVideoConf, image_resize

# Create your views here.
def watermark(request):
    if request.method=="GET":
        form = UploadFileForm()
        return render(request, 'video_et.html', {'form':form})
    else:
        if request.method=="POST":
            form = UploadFileForm(request.POST, request.FILES)
            if form.is_valid():
                fs = FileSystemStorage(location='/media')
                x = bytes()
                #arr=cv2.VideoWriter()
                image = request.FILES['Watermark_Image']
                video = request.FILES['Video_File']
                print("Name of the Watermark Image: ", image.temporary_file_path())
                print("Name of the Video: ", video.name)

                file_name1 = default_storage.save(video.name, video)
                file1 = default_storage.open(file_name1)
                file_url1 = default_storage.url(file_name1)
                print("file url= ",file_url1)
                url_now1 = "http://127.0.0.1:8000/"+file_url1

                #image = request.FILES['Watermark_Image'].read()

                file_name2 = default_storage.save(image.name, image)
                file2 = default_storage.open(file_name2)
                file_url2 = default_storage.url(file_name2)
                print("file url= ",file_url2)
                url_now2 = "http://127.0.0.1:8000/"+file_url2


                video = mp.VideoFileClip(url_now1)

                logo = (mp.ImageClip(url_now2)
                          .set_duration(video.duration)
                          .resize(height=50) # if you need to resize...
                          .margin(right=8, top=8, opacity=0) # (optional) logo-border padding
                          .set_pos(("right","top")))

                final = mp.CompositeVideoClip([video, logo])
                final.write_videofile("C:\\Users\\win10\\Desktop\\experiment\\django-poc\\media\\test.mp4")
                response = HttpResponse(video, content_type="video/mp4")
                response['Content-Disposition'] = 'attachment; filename=test.mp4'
                return response

如图所示,视频保存在路径“C:\Users\win10\Desktop\experiment\django poc\media\test.mp4”中这个我可以玩

服务器还将生成一个test.mp4作为下载文件。这是不能玩的

请帮助下载处理后的视频文件作为附件。在此方面的任何帮助都深表感谢


提前谢谢

返回@RossRogers,感谢您的回复。这有帮助。返回FileResponse(open('test.mp4','rb'),因为_attachment=True,filename='test.mp4')有效。非常感谢你!返回@RossRogers,感谢您的回复。这有帮助。返回FileResponse(open('test.mp4','rb'),因为_attachment=True,filename='test.mp4')有效。非常感谢你!