Skip to main content

02. 캡쳐 및 녹화

About 4 minPythoncrashcoursepythonpyopencv

02. 캡쳐 및 녹화 관련


영상이나 이미지를 캡쳐하거나 녹화하기 위해 사용합니다. 영상이나 이미지를 연속적 또는 순간적으로 캡쳐하거나 녹화할 수 있습니다.

FourCC

Four Character Code: 디지털 미디어 포맷 코드입니다. 즉, 코덱의 인코딩 방식

CVID, Default, DIB, DIVX, H261, H263, H264, IV32, IV41, IV50, IYUB, MJPG, MP42, 
MP43, MPG4, MSVC, PIM1, Prompt, XVI
import datetime
import cv2

capture = cv2.VideoCapture("kara.mp4")
fourcc = cv2.VideoWriter_fourcc(*'XVID')
record = False

while True:
  if (capture.get(cv2.CAP_PROP_POS_FRAMES) == capture.get(cv2.CAP_PROP_FRAME_COUNT)):
    capture.open("/Image/Star.mp4")
  
  ret, frame = capture.read()
  cv2.imshow("VideoFrame", frame)

  now = datetime.datetime.now().strftime("%d_%H-%M-%S")
  key = cv2.waitKey(33)

  if key == 27:
    break
  elif key == 26:
    print("캡쳐")
    cv2.imwrite("D:/" + str(now) + ".png", frame)
  elif key == 24:
    print("녹화 시작")
    record = True
    video = cv2.VideoWriter("D:/" + str(now) + ".avi", fourcc, 20.0, (frame.shape[1], frame.shape[0]))
  elif key == 3:
    print("녹화 중지")
    record = False
    video.release()

  if record == True:
    print("녹화 중..")
    video.write(frame)

capture.release()
cv2.destroyAllWindows()

키코드값: 27 = ESC, 26 = Ctrl+Z, 24 = Ctrl+X, 3 = Ctrl+C

ASCII Table

DECHEXOCTChar
000000Ctrl+@ NUL
101001Ctrl+A SOH
202002Ctrl+B STX
303003Ctrl+C ETX
404004Ctrl+D EOT
505005Ctrl+E ENQ
606006Ctrl+F ACK
707007Ctrl+G BEL
808010Ctrl+H BS
909011Ctrl+I HT
100A012Ctrl+J LF
110B013Ctrl+K VT
120C014Ctrl+L FF
130D015Ctrl+M CR
140E016Ctrl+N SO
150F017Ctrl+O SI
1610020Ctrl+P DLE
1711021Ctrl+Q DC1
1812022Ctrl+R DC2
1913023Ctrl+S DC3
2014024Ctrl+T DC4
2115025Ctrl+U NAK
2216026Ctrl+V SYN
2317027Ctrl+W ETB
2418030Ctrl+X CAN
2519031Ctrl+Y EM
261A032Ctrl+Z SUB
271B033Ctrl+[ ESC
281C034Ctrl+\ FS
291D035Ctrl+] GS
301E036Ctrl+^ RS
311F037Ctrl+_ US
3220040Space
3321041!
3422042"
3523043#
3624044$
3725045%
3826046&
3927047'
4028050(
4129051)
422A052*
432B053+
442C054,
452D055-
462E056.
472F057/
48300600
49310611
50320622
51330633
52340644
53350655
54360666
55370677
56380708
57390719
583A072:
593B073;
603C074<
613D075=
623E076>
633F077?
6440100@
6541101A
6642102B
6743103C
6844104D
6945105E
7046106F
7147107G
7248110H
7349111I
744A112J
754B113K
764C114L
774D115M
784E116N
794F117O
8050120P
8151121Q
8252122R
8353123S
8454124T
8555125U
8656126V
8757127W
8858130X
8959131Y
905A132Z
915B133[
925C134\
935D135]
945E136^
955F137_
9660140`
9761141a
9862142b
9963143c
10064144d
10165145e
10266146f
10367147g
10468150h
10569151i
1066A152j
1076B153k
1086C154l
1096D155m
1106E156n
1116F157o
11270160p
11371161q
11472162r
11573163s
11674164t
11775165u
11876166v
11977167w
12078170x
12179171y
1227A172z
1237B173{
1247C174|
1257D175}
1267E176~
1277F177DEL

이찬희 (MarkiiimarK)
Never Stop Learning.