Python 无法下载在django中使用moviepy创建的视频
我正在尝试导入视频,添加水印,然后使用moviepy在django中下载处理过的视频。 问题是,通过指定计算机驱动器的绝对路径,我可以将处理后的视频保存到计算机。但是,我一直无法下载这段经过处理的视频。我曾尝试在互联网上进行研究。然而,直到现在,运气都不好。 下面是我的代码: 视图.pyPython 无法下载在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
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')有效。非常感谢你!