Загрузка и просмотр видео в разных разрешениях в django
Я создаю приложение для потокового видео, как youtube, на django для учебных целей. Я хочу реализовать функциональность загрузки видео пользователем и просмотра его в различных разрешениях, таких как 360p, 480p и т.д. Я не знаю, как этого добиться...
Нужно ли сохранять все версии видео? Не будет ли это лишним???
А также как конвертировать видео в разных разрешениях!
Я хочу использовать aws s3 для этого.
Да, я думаю, вам нужно сохранить все версии вашего видео. Я не думаю, что вы можете изменить размер видео из Python. Возможно, вам следует использовать подпроцесс, например ffmpeg:
Пример (этот пример изменяет размер и удаляет исходное видео, предполагая, что видео является models.FileField):
def do_video_resize(video):
filename = video.file.path.split('/')[-1]
if ffmpeg('-v', '-8', '-i', video.file.path, '-vf', 'scale=-2:480', '-preset', 'slow', '-c:v', 'libx264', '-strict', 'experimental', '-c:a', 'aac', '-crf', '20', '-maxrate', '500k', '-bufsize', '500k', '-r', '25', '-f', 'mp4', ('/tmp/'+ filename ), '-y'):
resized_video = open('/tmp/' + filename)
video.file.save(filename ,File(resized_video))
resized_video.close()
os.remove('/tmp/'+ filename)
return video
def ffmpeg(*cmd):
try:
subprocess.check_output(['ffmpeg'] + list(cmd))
except subprocess.CalledProcessError:
return False
return True