Speichert JPEG für jedes angegebene Bild aus dem mit Theta S aufgenommenen Video. (Es ist in Ordnung, ein Video aufzunehmen, aber es ist ziemlich schwierig, alles in Echtzeit zu sehen. Deshalb mache ich ein Zeitraffervideo als verkürzte Version.)
Wenn Sie das unten ausgeschnittene JPEG mit Theta + App im Zeitraffer verschieben, wird das Video gedämpft. Darüber hinaus scheint die Theta + App in der Lage zu sein, Zeitraffervideos mit nur bis zu 300 JPEGs zu erstellen. Wenn dies mehr ist, wählen Sie Lapse It Time Lapse Pro App .ui.LapseItPro).
Ich habe nicht die Fähigkeiten, von Anfang an zu schreiben, also habe ich mir von verschiedenen Orten geliehen ^^; Danke.
python mp42jpg.py MP4FileName [FrameInterval] FrameInterval gibt an, wie viele Frames als JPEG gespeichert werden sollen. Der Standardwert ist 120 (ThetaS-Video ist ungefähr 15 fps, also 15 fps x alle 8 Sekunden) pro Frame.
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()
Wenn Sie imshow mit dem obigen Kommentar ausführen, wird es im Fenster angezeigt.