[英]Save video clip from longer video between two timestamps in Python cv2
我有一個長達一小時的視頻,我想在兩個時間戳之間保存一個剪輯——比如 11:20-11:35。 是逐幀執行此操作的最佳方法,還是有更好的方法?
這是我逐幀所做的要點。 如果有一種損失較小的方法可以做到這一點,我很想知道! 我知道我可以使用 ffmpeg 從終端執行此操作,但我很好奇如何使用 cv2 最好地執行此操作。
def get_clip(input_filename, output_filename, start_sec, end_sec):
# input and output videos are probably mp4
vidcap = cv2.VideoCapture(input_filename)
# math to find starting and ending frame number
fps = find_frames_per_second(vidcap)
start_frame = int(start_sec*fps)
end_frame = int(end_sec*fps)
vidcap.set(cv2.CAP_PROP_POS_FRAMES,start_frame)
# open video writer
vidwrite = cv2.VideoWriter(output_filename, cv2.VideoWriter_fourcc(*'MP4V'), fps, get_frame_size(vidcap))
success, image = vidcap.read()
frame_count = start_frame
while success and (frame_count < end_frame):
vidwrite.write(image) # write frame into video
success, image = vidcap.read() # read frame from video
frame_count+=1
vidwrite.release()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.