ffmpeg+pygame으로 동영상 보기
코드
video_player.pyimport pygame
import subprocess as sp
import numpy as np
cmd = ["ffmpeg", "-i", "kemono_960x540.mp4", "-loglevel", "quiet", "-an", "-r", "10", "-pix_fmt", "rgb24", "-f", "image2pipe", "-vcodec", "rawvideo", "-"]
pipe = sp.Popen(cmd, stdin = sp.PIPE, stdout = sp.PIPE)
pygame.init()
display = pygame.display.set_mode((960, 540))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
row_img = pipe.stdout.read(960*540*3)
img = np.frombuffer(row_img, dtype='uint8').reshape((540,960,3))
img = np.swapaxes(img, 0, 1)
#print(img);break
surf = pygame.surfarray.make_surface(img)
display.blit(surf, (0, 0))
pygame.display.update()
pygame.quit()
움직이다
우선 macOS에서.
$ brew install ffmpeg
$ pipenv install numpy
$ pipenv install pygame
$ pipenv run python video_player.py
참고
import pygame
import subprocess as sp
import numpy as np
cmd = ["ffmpeg", "-i", "kemono_960x540.mp4", "-loglevel", "quiet", "-an", "-r", "10", "-pix_fmt", "rgb24", "-f", "image2pipe", "-vcodec", "rawvideo", "-"]
pipe = sp.Popen(cmd, stdin = sp.PIPE, stdout = sp.PIPE)
pygame.init()
display = pygame.display.set_mode((960, 540))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
row_img = pipe.stdout.read(960*540*3)
img = np.frombuffer(row_img, dtype='uint8').reshape((540,960,3))
img = np.swapaxes(img, 0, 1)
#print(img);break
surf = pygame.surfarray.make_surface(img)
display.blit(surf, (0, 0))
pygame.display.update()
pygame.quit()
우선 macOS에서.
$ brew install ffmpeg
$ pipenv install numpy
$ pipenv install pygame
$ pipenv run python video_player.py
참고
Reference
이 문제에 관하여(ffmpeg+pygame으로 동영상 보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miminashi/items/9a2c3f0548e9878145c9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)