본문 바로가기
Python

[파이썬] cv2 mp4 jpg 변환, gif 변환 해보기

by 퍼포먼스마케팅코더 2022. 7. 9.
반응형

오늘은 쉬운 주제이긴 합니다. 쉬운 주제라는 게 뭐냐면 오늘 파이썬으로 cv2 그걸 이용을 해서 보통 이제 동영상 포 파일을 한번 이미지 jpg로 변환을 해보고 그다음에 gif로 한번 변환을 해봐서 꾸미는 것도 한번 해볼게요 이 외에 또 한 가지 추가적으로 gif를 한번 또 영상 그러니까 mp4 파일로도 한번 변환을 해보는 그런 시간을 가져보도록 하겠습니다. 

 

파이썬 cv2 mp4 jpg 변환

그래서 제가 영상을 가져왔었었는데 이게 한 11월에 이게 낙엽 질 때 약간 그걸 동영상으로 찍은 거거든요.  그래서 이거를 이제 한번 변환을 해보는 건데 맨 처음에는 이제 jpg 그냥 이걸로 하면 변환을 합니다. 밑에 있는 그 코드가 이제 그거고요 그래서 그렇게 변환을 해서 이제 보면 프레임 개수가 있어요.  이 프레임을 한 이제 200개 그 정도만 해서 이미지로 한번 만들어보는 걸로 해서 보면 이제 아래 이미지와 같이 이렇게도 나옵니다. 

파이썬 cv2 mp4 jpg 변환, gif 변환 해보기

 

 

import cv2

vidcap = cv2.VideoCapture('C:/Users/user/Desktop/videos/20211107_142010.mp4')  #비디오 경로
success,image = vidcap.read() #비디오 읽기

count = 0  #카운트

while success:
  cv2.imwrite("C:/Users/user/Desktop/videos/%06d.jpg" % count, image)     # save frame as JPEG file
  success,image = vidcap.read() #비디오 읽기
  print('Read a new frame: ', success) #카운트
  if count == 200 : #200이면 멈추기
    break
  count += 1

print("비디오 내 이미지 jpg 파일 변환 완료")

 

 

이게 이제 각 프레임마다 이제 이미지가 다 직해서 이제 다 나오는 건데요. 그래서 이제 이런 이미지가 나왔으니까 이제 이거를 한번 jpg로 한번 만들어봤는데요. 아래 이미지가 이제 jpg로 만들었던 이제 그겁니다. 

 

파이썬 cv2 mp4 jpg 변환, gif 변환 해보기

파이썬 cv2 jpg  gif변환, gif mp4 변환

이제 그거를 이제 동영상으로 변환을 해서 한번 업로드 해봤었는데 프레임이 약간 이제 허술하다 약간 그런 것들이 있기는 해요.  왜냐하면 jpg로 변환을 해서 이제 그거를 gif로 만들어서 최종적으로 이제 영상을 만들어서 했었던 때문에 단순히 이제 원래 있는 영상에서는 이제 화질이 떨어지는 거냐 어쩔 수가 없습니다. 

파이썬 cv2 mp4 jpg 변환, gif 변환 해보기

근데 이런 것이 있다라는 것만 알아두시면 될 것 같고요 이제 그것에 따라서 밑에 있는 거는 이제 파이썬 코딩으로 어떻게 했었느냐 그러니까 밑에 있는 거는 그겁니다. 흔히 말해서 이제 이미지에서 gif를 만들잖아요. 그거를 이제 자동화로 어떻게 했는지 그다음에 최종적으로 gif를 mp4 영상으로 어떻게 변환을 했는지에 따른 결과라고 보시면 될 것 같습니다. 그런 결과입니다. 그래서 참고 사항으로만 보시면 될 것 같아요. 

 

#이미지에서 gif 만들기

from PIL import Image
import glob


# Create the frames
frames = []
imgs = glob.glob("C:/Users/user/Desktop/videos/img/*.jpg")  #이미지 읽기
for i in imgs:
    new_frame = Image.open(i)
    frames.append(new_frame) #이미지를 프레임 리스트에 담기
 
# Save into a GIF file that loops forever
frames[0].save('C:/Users/user/Desktop/videos/result.gif', format='GIF',
               append_images=frames[1:],  #이미지를 프레임 리스트에 담기
               save_all=True,
               duration=0.2, #0.2로 설정 
               loop=0
              )
#gif 를 mp4로 변환하기

import moviepy.editor as mp

clip = mp.VideoFileClip("C:/Users/user/Desktop/videos/result.gif")
clip.write_videofile("C:/Users/user/Desktop/videos/result.mp4")
#clip.write_videofile("Awesome JavaScript Text Typing Animation Example - TyperJS.avi", codec='libx264')
clip.close()
반응형

댓글