소스 뷰어
# 21_create_image_write_video.py

import cv2
import numpy as np

# 현재 소스 파일의 폴더 경로
from pathlib import Path
dir = Path( __file__ ).resolve().parent

# blue, green, red 채널 영상 생성
size = (height, width) = (256, 255)
b = np.zeros( size, dtype = 'uint8' )
g = np.zeros( size, dtype = 'uint8' )
r = np.zeros( size, dtype = 'uint8' )

# 코덱 정의
fourcc = cv2.VideoWriter_fourcc( *"H264" )
# 비디오 출력 파일 
filename = dir.joinpath( "img/video_output_02.mp4" )
out = cv2.VideoWriter( filename, fourcc, 10, (width, height))

for i in range( width ):
    # 첫 번째 열부터 마지막 ​​열까지 청색의 강도를 점차적으로 높입니다.
    b[ :, i ] = i
    # 첫 번째 행부터 마지막 ​​행까지 녹색의 강도를 점차적으로 감소시킵니다.
    g[ i, : ] = 255 - i
    # 첫 번째 행부터 마지막 ​​행까지 적색의 강도를 0으로 설정합니다.
    r[ :, i ] = 0

    frame = cv2.merge( [ b, g ,r ] )

    cv2.imshow( "image", frame)

    cv2.waitKey( 100 )

    out.write(frame)
pass

out.release() # 출력 파일 자원 해제
cv2.waitKey( 2000 )  # 키 입력 2초간 대기

print( f"동영상 변환 완료: {filename.name}" )