@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 секунды, сохраняя каждую часть в отдельный файл.