使用Python cv2把图片转成视频的过程中出现了问题 求救啊

问题描述 投票:0回答:0

我以为我写了一个代码,可以将视频逐帧剪切并保存为图像,加载所有这些图像,然后再次将它们制作成视频。但是,结果有时会包含一帧照片,需要稍后在视频中发布

import os
import cv2
# 필요한 라이브러리를 가져온다
import moviepy.editor as mp

# 동영상 파일 경로 설정
video_path = "video.mp4"

# 동영상 파일 열기
cap = cv2.VideoCapture(video_path)

# 프레임 수 확인
frame_count = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

# 저장할 이미지 경로 설정
save_path = "image_data"

# 프레임 단위로 이미지 저장
for i in range(frame_count):
    ret, frame = cap.read() # 프레임 읽기
    if ret:
        cv2.imwrite(save_path + "/frame%d.jpg" % i, frame) # 이미지 저장
    else:
        break

# 동영상 파일 닫기
cap.release()

# 프레임이 저장된 경로
image_folder = 'image_data'

# 프레임들의 이름을 정렬
images = [img for img in os.listdir(image_folder) if img.endswith('.jpg')]

# 동영상 파일명과 FPS 설정
video_name = 'output.avi'
fps = 24

# 첫번째 프레임을 읽어와서 동영상 크기 설정
frame = cv2.imread(os.path.join(image_folder, images[0]))
height, width, layers = frame.shape

# 동영상 코덱 설정
#fourcc = cv2.VideoWriter_fourcc(*'XVID')
fourcc = cv2.VideoWriter_fourcc('M','J','P','G')
# 동영상 writer 객체 생성
video = cv2.VideoWriter(video_name, fourcc, fps, (width, height))

# 프레임들을 동영상으로 만들기
for image in images:
    video.write(cv2.imread(os.path.join(image_folder, image)))

# 동영상 writer 객체 해제
cv2.destroyAllWindows()
video.release()

python opencv video-capture cv2
© www.soinside.com 2019 - 2024. All rights reserved.