2023-04-16 08:51:19 +03:00
|
|
|
from PIL import Image, ImageFilter
|
|
|
|
import ffmpeg
|
|
|
|
import os
|
2023-04-16 09:55:33 +03:00
|
|
|
from processing.utils import generate_name, get_date_text
|
2023-04-16 08:51:19 +03:00
|
|
|
|
|
|
|
|
2023-04-16 09:55:33 +03:00
|
|
|
def images_to_video(directory, fps, img_ext, img_name_format, video_name, video_ext, video_dir):
|
|
|
|
images_pattern = os.path.join(directory, f"{img_name_format}.{img_ext}")
|
2023-04-16 08:51:19 +03:00
|
|
|
|
2023-04-16 09:55:33 +03:00
|
|
|
if video_dir:
|
|
|
|
video_path = os.path.join(video_dir, f"{video_name}.{video_ext}")
|
|
|
|
else:
|
|
|
|
video_path = generate_name(
|
|
|
|
extension=video_ext, name=video_name, subfolder="videos")
|
|
|
|
|
|
|
|
ffmpeg.input(images_pattern,
|
|
|
|
framerate=fps).output(video_path, pix_fmt='yuv420p').global_args("-y").run()
|
|
|
|
|
|
|
|
|
|
|
|
def video_to_images(video_path, img_ext):
|
2023-04-16 10:12:04 +03:00
|
|
|
|
2023-04-16 09:55:33 +03:00
|
|
|
images_pattern = generate_name(
|
2023-04-16 10:12:04 +03:00
|
|
|
extension=img_ext, name=f"%d", subfolder=os.path.join("images", get_date_text()))
|
2023-04-16 09:55:33 +03:00
|
|
|
|
|
|
|
ffmpeg.input(video_path).output(images_pattern).run()
|