Gym wrapper videorecorder 在 Hopper-v2 环境中无法正常工作。给出分段错误
Posted
技术标签:
【中文标题】Gym wrapper videorecorder 在 Hopper-v2 环境中无法正常工作。给出分段错误【英文标题】:Gym wrapper videorecorder is not working properly on Hopper-v2 environment. Gives segmentation fault 【发布时间】:2021-12-05 08:00:48 【问题描述】:我正在尝试保存我的 Hopper-v2 环境的渲染视频,但是它给出了分段错误错误。我制作了一个简短的代码示例来重现该问题。
import os
from gym.wrappers.monitoring.video_recorder import VideoRecorder
path_project = os.path.abspath(os.path.join(__file__, ".."))
path_of_video_with_name = os.path.join(path_project, "videotest.mp4")
env = gym.make('Hopper-v2') # for making environment
state = env.reset()
video_recorder = None
video_recorder = VideoRecorder(env, path_of_video_with_name, enabled=True)
for _ in range(1000):
env.render()
video_recorder.capture_frame()
env.step(env.action_space.sample()) # take a random action
print("Saved video.")
video_recorder.close()
video_recorder.enabled = False
env.close()
这给出了错误: 进程以退出代码 139 结束(被信号 11:SIGSEGV 中断)
但它确实会创建一个只有 14 帧长的视频,然后会被中断。通过注释掉“video_recorder.capture_frame()”行,它将呈现完整的剧集。使用 cartpole 环境而不是 hopper,确实有效并保存了整个剧集。
我正在使用 Linux 20.0.4 (Ubuntu),Gym 版本 0.21.0 使用 pip install gym
,python 版本 3.7.6。
如果有人知道,请告诉我
【问题讨论】:
好的,使用env = gym.wrappers.Monitor(env, path_of_video_with_name)
确实有效。另一个解决方案给出错误仍然很奇怪
【参考方案1】:
安装以下依赖项;
pip install ffmpeg
pip install imageio-ffmpeg
解决了我的问题。
【讨论】:
以上是关于Gym wrapper videorecorder 在 Hopper-v2 环境中无法正常工作。给出分段错误的主要内容,如果未能解决你的问题,请参考以下文章
videoRecording Failed 摄像头设备遇到严重错误
服务器无法调用gym中的render,采用Monitor保存视频的方法解决