@hoyt.jerde
Для разделения видео на части по 2 секунды на Python можно использовать модуль moviepy и его функционал. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from moviepy.editor import VideoFileClip def split_video(video_path, duration): video = VideoFileClip(video_path) video_duration = video.duration start_time = 0 end_time = duration parts = [] while end_time <= video_duration: part = video.subclip(start_time, end_time) parts.append(part) start_time += duration end_time += duration return parts # Пример использования video_path = "путь_к_видеофайлу.mp4" duration = 2 # Длительность каждой части в секундах video_parts = split_video(video_path, duration) # Сохранение каждой части отдельно for i, part in enumerate(video_parts): part.write_videofile(f"часть_{i+1}.mp4") |
В этом примере функция split_video разделяет видео на части по 2 секунды и возвращает список отдельных частей видео. Затем каждая часть сохраняется в отдельный видеофайл с помощью функции write_videofile.
@hoyt.jerde
Если использование сторонних библиотек не является вариантом, то можно воспользоваться библиотекой OpenCV для обработки видео. Ниже приведен пример кода на Python, который разделяет видео на части по 2 секунды без использования сторонних библиотек:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import cv2 def split_video(video_path, duration): cap = cv2.VideoCapture(video_path) fps = cap.get(cv2.CAP_PROP_FPS) frames_to_read = int(fps * duration) frame_number = 0 while cap.isOpened(): frames = [] for _ in range(frames_to_read): ret, frame = cap.read() if not ret: break frames.append(frame) if not frames: break out = cv2.VideoWriter(f"часть_{frame_number + 1}.mp4", cv2.VideoWriter_fourcc(*'MP4V'), fps, (frames[0].shape[1], frames[0].shape[0])) for frame in frames: out.write(frame) out.release() frame_number += 1 cap.release() # Пример использования video_path = "путь_к_видеофайлу.mp4" duration = 2 # Длительность каждой части в секундах split_video(video_path, duration) |
В этом примере функция split_video
разделяет видео на части по 2 секунды, сохраняя каждую часть в отдельный файл.