o Y#èdsã@sRddlmZddlZddlmZd dededeefdd„Zdedefd d „ZdS) é)ÚOptionalN)ÚFrameÚ video_pathÚ frame_numberÚreturncCsNt |¡}| tj¡}| tjt||dƒ¡| ¡\}}| ¡|r%|SdS)Né) Úcv2Ú VideoCaptureÚgetÚCAP_PROP_FRAME_COUNTÚsetÚCAP_PROP_POS_FRAMESÚminÚreadÚrelease)rrÚcaptureÚ frame_totalÚ has_frameÚframe©rú*/content/DeepFakeAI/DeepFakeAI/capturer.pyÚget_video_frames   rcCs&t |¡}t| tj¡ƒ}| ¡|S)N)rr Úintr r r)rrÚvideo_frame_totalrrrÚget_video_frame_totals r)r) ÚtypingrrÚDeepFakeAI.typingrÚstrrrrrrrrÚs