Быстрое разделение видео на фрагменты «x» кадров [закрыто]Python

Программы на Python
Ответить
Anonymous
 Быстрое разделение видео на фрагменты «x» кадров [закрыто]

Сообщение Anonymous »

Я пытаюсь разбить видео на фрагменты по 1000 кадров каждый (это нужно делать на уровне кадров). Сейчас я использую библиотеку openCV, но она очень медленная. Чтобы разделить часовое видео на куски одинакового размера, требуется полчаса.
Есть ли какие-нибудь другие методы (на Python), которые я могу использовать для этого более эффективно? Я просмотрел библиотеку FFmpeg, но, похоже, она хорошо справляется только с разделением по продолжительности, а не по числовым кадрам.
В openCV я сейчас использую эту функцию для разделения видео:< /p>
def split_video(video_path, output_dir, frames_per_chunk=1000):
cap = cv2.VideoCapture(video_path)
fps = cap.get(cv2.CAP_PROP_FPS)
frame_count = 0
chunk_count = 0
frames = []

# Create output directory if it doesn't exist
if not os.path.exists(output_dir):
os.makedirs(output_dir)

frame_idx = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break

frames.append(frame)
frame_count += 1
# Save chunk after every 'frames_per_chunk' frames
if frame_count % frames_per_chunk == 0:
chunk_filename = f'video_chunk_{chunk_count}.mp4'
chunk_path = os.path.join(output_dir, chunk_filename)
save_frames_to_video(frames, chunk_path, fps)
frames = []
chunk_count += 1
frame_idx +=1

# Save any remaining frames
if frames:
chunk_filename = f'video_chunk_{chunk_count}.mp4'
chunk_path = os.path.join(output_dir, chunk_filename)
save_frames_to_video(frames, chunk_path, fps)

print(f'video split into {chunk_count + 1} chunks')
cap.release()
return


Подробнее здесь: https://stackoverflow.com/questions/791 ... f-x-frames
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»