为Open AI GymTaxi环境保存视频/ GIF文件

时间:2019-01-08 22:21:34

标签: python-3.x animated-gif openai-gym

我正在尝试为Open AI Gym Taxi环境制作GIF文件。我可以看到很多针对图像对象环境的代码。但是出租车环境是字符串,我不确定如何将渲染的环境另存为jpg或png文件。

这就是我所拥有的:

import gym
env = gym.make('Taxi-v2')
state=env.reset()
while True:
    t += 1
    env.render()
    action = env.action_space.sample()
    state, reward, done, info = env.step(action)
    if done:
        print("Episode finished after {} timesteps".format(t+1))
        break
env.close()

我尝试过:

env = gym.wrappers.Monitor(env, './video/',video_callable=lambda episode_id: True,force = True)

但这只会创建一个json文件。

衷心感谢您的帮助。 谢谢

2 个答案:

答案 0 :(得分:0)

您安装了FFmpeg吗?如果不是,只需使用以下命令安装它:

apt-get install ffmpeg

对于Debian,或:

brew install ffmpeg

在OS X上。

编辑(说明)

健身房录像机首先创建每秒帧,然后以json格式转储其元数据,但是在渲染这些帧之前,它需要使用编码器进行压缩,因此启动了查找ffmpeg编码器的子过程,这可能会导致依赖项错误如果找不到它,则返回第一帧的元数据。要进一步了解,请检查gym/wrappers/monitoring/video_recorder.py下列出的源代码。

答案 1 :(得分:0)

我找不到直接的方法来做到这一点,但我用

安装了 asciinema (https://asciinema.org/docs/usage)
apt-get install asciinema

动画 OpenAI 创建的 JSON 文件。然后我使用以下命令截取了输出的屏幕截图(使用类似 peek https://github.com/phw/peek):

asciinema play openaigym.video.0.272453.video000000.json 

产生的:

GIF  of output