Enregistre JPEG pour chaque image spécifiée de la vidéo prise avec Theta S. (Il est normal de tourner une vidéo, mais il est assez difficile de tout voir en temps réel, donc je fais une vidéo time-lapse en version raccourcie.)
De plus, si vous accélérez la découpe jpeg ci-dessous avec Theta + App, ce sera une vidéo qui peut être étouffée. L'application Theta + semble être capable de créer des vidéos time-lapse jusqu'à 300 JPEG seulement, donc si c'est plus que cela, [Lapse It Time Lapse Pro App](https://play.google.com/store/apps/details?id=com .ui.LapseItPro).
Je n'ai pas les compétences pour écrire depuis le début, j'ai donc emprunté à divers endroits ^^; Merci.
python mp42jpg.py MP4FileName [FrameInterval] FrameInterval spécifie le nombre d'images à enregistrer au format JPEG. La valeur par défaut est 120 (la vidéo ThetaS est d'environ 15 ips, donc 15 ips x toutes les 8 secondes) chaque image.
mp42jpg.py
import cv2
import os.path
import sys
interval = 120 #about 15fps*8sec
if len(sys.argv) >= 2 and len(sys.argv) <= 3:
filename = sys.argv[1]
if len(sys.argv)==3:
interval = int(sys.argv[2] )
else:
print('Usage: python %s mp4_filename [frame_interval]' % sys.argv[0])
quit()
cap = cv2.VideoCapture(filename)
max_frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)
file_basename, ext = os.path.splitext(filename)
ret = cap.grab()
while(ret):
frame_count = cap.get(cv2.CAP_PROP_POS_FRAMES)
# ret, frame = cap.read()
ret, frame = cap.retrieve()
if ret :
#cv2.imshow('frame',frame)
print("frame count:%d" % frame_count)
cv2.imwrite('%s_%d.jpg' % (file_basename,frame_count),frame)
if (frame_count + interval ) > max_frames:
break;
cap.set(cv2.CAP_PROP_POS_FRAMES,frame_count+interval)
# if cv2.waitKey(1) & 0xFF == ord('q'):
# break
cap.release()
#cv2.destroyAllWindows()
Si vous exécutez imshow avec le commentaire ci-dessus, il sera affiché dans Window.