gpt4 book ai didi

OpenCV 将帧附加到现有视频(.avi)文件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:47:17 37 4
gpt4 key购买 nike

我有一个小问题。是否可以使用 OpenCV 将新帧添加(附加)到现有的 .avi 视频文件,而不覆盖整个文件?我在 Windows7 上使用 OpenCV2.4.2 和 QT。

最佳答案

如果要使用OpenCV,就必须读写所有的数据内容。

import cv2
import os

# this two lines are for loading the videos.
# in this case the video are named as: cut1.mp4, cut2.mp4, ..., cut15.mp4
# videofiles = [n for n in os.listdir('.') if n[0]=='c' and n[-4:]=='.mp4']
# videofiles = sorted(videofiles, key=lambda item: int( item.partition('.')[0][3:]))


videofiles = [n for n in os.listdir('.') if n[0]=='c' and n[-4:]=='.avi']
videofiles = sorted(videofiles, key=lambda item: int( item.partition('.')[0][3:]))

video_index = 0
cap = cv2.VideoCapture(videofiles[0])

# video resolution: 1624x1234 px
# out = cv2.VideoWriter("video.avi",
# cv2.cv.CV_FOURCC('F','M','P', '4'),
# 15, (1624, 1234), 1)

# fourcc = cv2.VideoWriter_fourcc(*'MP4V')
# out = cv2.VideoWriter('cutout.mp4', fourcc, 20, (640, 480))

fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('cutout.avi', fourcc, 20.0, (640, 480))

while(cap.isOpened()):
ret, frame = cap.read()
if frame is None:
print ("end of video " + str(video_index) + " .. next one now")
video_index += 1
if video_index >= len(videofiles):
break
cap = cv2.VideoCapture(videofiles[ video_index ])
ret, frame = cap.read()
cv2.imshow('frame',frame)
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
out.release()
cv2.destroyAllWindows()

print ("end.")

关于OpenCV 将帧附加到现有视频(.avi)文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12194902/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com