ffmpegを使用してフレームをつなぎ合わせるのではなく、各フレームを画像として保存して、ゲームのビデオをキャプチャしようとしています。これらのスクリプトの例に従いました。
これが私のコードの基本的なロジックです:
os.environ['SDL_VIDEODRIVER'] = 'dummy'
pygame.init()
pygame.display.set_mode((1,1))
screen = pygame.Surface((400, 400)).convert()
# screen becomes attribute of game object: game.screen
game = MyGame(screen)
while game.running:
game.update() # <--- updates game.screen
pygame.display.flip()
pygame.image.save(game.screen, 'frame-%03d.png' % (game.frame_num))
create_video_using_ffmpeg()
ビデオドライバを「ダミー」に設定する最初の行をコメントアウトすると、画像は期待どおりに表示されます。ただし、(小さな)ウィンドウが開くため、cronジョブとして実行するとスクリプトが失敗します。行のコメントを外すと、一連の空白の黒い画像が表示されます。
何が悪いのか分かりますか?