more things depend on gif.

This commit is contained in:
j 2025-03-27 10:08:05 +00:00
parent 1e408d9b25
commit c1063b4ff8

View file

@ -200,26 +200,27 @@ class Content(models.Model):
if self.photo and self.photo.image.url.endswith('.gif'):
video_path = self.photo.image.path.replace('.gif', '.mp4')
image_path = self.photo.image.path.replace('.gif', '.jpg')
if os.path.exists(self.photo.image.path) and not os.path.exists(video_path):
height = self.photo.image.height
if height % 2:
height += 1
cmd = [
'ffmpeg',
'-hide_banner', '-nostats', '-loglevel', 'error',
'-i', self.photo.image.path,
'-vf', 'scale=-2:%s' % height,
'-pix_fmt', 'yuv420p',
video_path
]
subprocess.call(cmd)
if not os.path.exists(image_path):
cmd = [
'ffmpeg',
'-hide_banner', '-nostats', '-loglevel', 'error',
'-i', self.photo.image.path, '-frames:v', '1', image_path
]
subprocess.call(cmd)
if os.path.exists(self.photo.image.path):
if not os.path.exists(video_path):
height = self.photo.image.height
if height % 2:
height += 1
cmd = [
'ffmpeg',
'-hide_banner', '-nostats', '-loglevel', 'error',
'-i', self.photo.image.path,
'-vf', 'scale=-2:%s' % height,
'-pix_fmt', 'yuv420p',
video_path
]
subprocess.call(cmd)
if not os.path.exists(image_path):
cmd = [
'ffmpeg',
'-hide_banner', '-nostats', '-loglevel', 'error',
'-i', self.photo.image.path, '-frames:v', '1', image_path
]
subprocess.call(cmd)
return self.photo.image.url.replace('.gif', '.mp4')
@cached_property