2-11. 실전 코딩

동영상 전환 이펙트

    페이드-인(fade-in), 페이트-아웃(fade-out), 디졸브(dissolve), 밀기, 확대 등 두 동영상 클립 사이에 추가되는 애니메이션 효과

    코딩 목표는 두 동영상을 밀기 효과로 이어주어 새로운 영상을 제작하는 것이다. 원리는 아래 그림을 참고.

두 개의 영상 합성 원리. (출처: FastCampus)

    구현해야하는 기능:

     1. 두 개의 동영상 동시 열기

     2. 첫 번째 동영상의 마지막 N개 프레임과 두번째 동영상의 처음 N개 프레임을 합성

     3. 새로운 동영상으로 저장

    아래는 구현해야하는 기능을 포함한 로직을 주석으로 설명해 두었다.

#import sys
#import numpy
#import OpenCV

# OpenCV의 VideoCaputre 클래스를 사용해 합칠 두 영상 가져오기
# 영상이 제대로 불러졌는지 확인

# 두 영상의 프레임 갯수 저장 
# 두 영상의 fps 저장
# 겹쳐질 frame 갯수 N을 int(fps * #)로 계산 (두 영상의 fps를 동일하다 가정하기 때문에 어느 fps를 쓰던 상관 없음)

# 1000/fps로 openCV 창으로 창을 유지할 시간 계산 (= delay)

# (두 영상의 크기가 동일하다는 가정 하에)
# 한 동영상의 w, h를 가져오기

# 새로운 영상 저장할 fourcc 저장

# 출력 동영상 객체 생성

# 처음 동영상의 첫 프레임 부터 최종 frame 수에서 겹쳐질 frame 개수를 뺀 frame 만큼 loop
  # 프레임 읽어오기
  # 결과 확인
    # 잘 안됐으면 에러 메세지 출력 및 시스템 종료
  # 출력 동영상에 프레임 저장
  # 저장된 프레임을 imshow로 출력
  # delay만큼 기다리기
  
# 겹쳐질 frame 개수 만큼 loop
  # 두 영상의 프레임 각각 읽어오기
  # 결과 확인
    # 잘 안됐으면 에러 메세지 출력 및 시스템 종료
    
  # 프레임을 밀어낼 dw 계산 = int(w/겹쳐질 프레임 값) * looping index
  # 비어있는 영상 만들기
  # 첫번째 영상의 0~dw까지의 영상을 비어있는 영상에 복사
  # 두번째 영상의 dw~w까지의 영상을 비어있는 영상에 복사
  
  # 출력 동영상에 프레임 저장
  # 저장된 프레임을 imshow로 출력
  # delay만큼 기다리기
  
# 연결될 동영상의 겹쳐진 frame 부터 나머지 frame 만큼 loop
  # 프레임 읽어오기
  # 결과 확인
    # 잘 안됐으면 에러 메세지 출력 및 시스템 종료
  # 출력 동영상에 프레임 저장
  # 저장된 프레임을 imshow로 출력
  # delay만큼 기다리기
  
# 영상 제작 완료 메세지 띄우기

# 만든 동영상 클래스 release
# OpenCV 창 모두 종료

    아래는 Ch2를 들으면서 만들었던 동영상을 이어본 결과 영상이다. 강의 영상에서는 디졸브 하는 방식도 알려주셔서 적용해 보았다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.


인증 타임

실전 코딩 파트이긴 하지만 강의 자료에 코드를 다 제공해 주셔서 비디오를 만드는데 있어서 읽어오는 파일 이름 변경과 전체 과정 한 번 더 반복하여 두번째 영상을 저장하게끔 할 수 있게만 수정했다. 프레임끼리 연결하는 방식은 이해했으니 페이드 인/아웃의 원리도 생각해보거나 검색해서 적용해보고 싶다. 원리만 배웠으면 지루했을 텐데 내가 가진 영상으로 직접 결과물을 볼 수 있는 과제가 매 챕터 끝마다 있어서 좀 더 흥미롭게 배울 수 있었다.

2-11. 공부 인증 사진

 * 아래는 원래 2장의 인증 사진이 필요한데 결과물을 동영상으로 올려서 추가하는 인증 사진...;;

2-11. 결과물 인증 사진


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online

 

패스트캠퍼스(FastCampus) 강의 둘러보러 가기 

   

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.


 

 

+ Recent posts