며칠 전, 파이 게임 창에서 비디오를 재생하는 코드를 만들었습니다. 코드는 원래 의도대로 잘 작동합니다. 그러나, 그 fps를 볼 디버그 문을 인쇄 할 때, 어딘가에 약 30fps. fps를 높이려면 어떻게해야합니까?파이 게임에서 음악 비디오의 FPS 속도를 높이려면 어떻게해야합니까?
다음은 내가 사용한 코드입니다.
import sys
from color import *
import pyglet
pygame.init()
running = True
gameDisplay= pygame.display.set_mode((800,600))
window = pyglet.window.Window(visible=False)
background_vid = pyglet.media.Player()
background_vid.queue(pyglet.media.load(".\\music_folder\\music_vid/servant_of_evil_converted.mp4"))
background_vid.play()
def hellow():
print "hellow bloody world"
def on_draw():
#We have to convert the Pyglet media player's image to a Pygame surface
rawimage = background_vid.get_texture().get_image_data()
print "rawimage "+str(rawimage)
pixels = rawimage.get_data('RGBA', rawimage.width *8)
video = pygame.image.frombuffer(pixels, (rawimage.width*2,rawimage.height), 'RGBA')
#Blit the image to the screen
gameDisplay.blit(video, (0, 0))
circle_x=300
while True:
pyglet.clock.tick()
on_draw()
print "fps: "+str(pyglet.clock.get_fps())
for event in pygame.event.get():
if(event.type == pygame.QUIT):
sys.exit()
pygame.quit()
pygame.draw.rect(gameDisplay, red, (circle_x, 300, 300, 300), 5)
circle_x+=1
pygame.display.update()
stdout을 파일로 리디렉션 해 보셨습니까? 나는 터미널 명령 창 내에서 출력을 스크롤하는 것이 진행을 막고있는 것 같아요. 큐에 메시지를 대기 행렬에 넣고 다른 스레드가 메시지를 쓸 수있게 할 수도 있습니다. 'str (rawImage)'가 이상한 일을하고있을 수도 있습니다. 그 라인을 주석 처리 해보십시오. * perf 문제가있는 것으로 가정하기 전에 프로파일 링 및 측정에 대한 필수 주석을 삽입하십시오. * – selbie
open ('fps_debug.txt', 'a')을 사용하여 제안 (str (rawImage)을 주석 처리하고 print FPS 문을 대체) fd : fd.write ("FPS :"+ str (pyglet.clock.get_fps())) 그러나 FPS는 결국 동일하게 유지됩니다. –
전에 stdout에 로깅하는 대신 파일에 로깅을 시도하십시오. – selbie