首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用显示器录制OpenAI健身房视频

使用显示器录制OpenAI健身房视频
EN

Stack Overflow用户
提问于 2021-01-06 19:49:50
回答 2查看 2.8K关注 0票数 3

我想录制一段OpenAIs健身房推广的视频。我使用Monitor类,但其他解决方案也很受欢迎。这是我创建的一个最小示例,运行时没有异常或警告:

代码语言:javascript
复制
import gym
from gym.wrappers import Monitor
env = Monitor(gym.make('CartPole-v0'), './video', force=True)
state = env.reset()
done = False
while not done:
    action = env.action_space.sample()
    state_next, reward, done, info = env.step(action)
env.close()

这会将视频和一些元数据保存到'./video'文件夹。然而,保存在那里的MP4文件总是只有262字节的大小,并且“文件不包含可播放的流”。所以它看起来像是一个“视频”,但由0帧组成?我不知道问题出在哪里,也不知道如何在这里调试。

EN

回答 2

Stack Overflow用户

发布于 2021-01-06 21:45:57

这实际上是一个修复了here的错误

票数 3
EN

Stack Overflow用户

发布于 2021-01-06 21:13:08

请确保您首先安装了FFmpeg

代码语言:javascript
复制
brew install ffmpeg

一种方法是在Xvfd虚拟显示中运行代码。

这样做的原因是视频录制,这是通过拍摄由环境绘制的窗口的屏幕截图来完成的。一些环境使用OpenGL来绘制图形,因此需要使用带有OpenGL的图形模式。

对于物理上没有监视器和图形界面运行的云中的虚拟机来说,这可能是一个问题。为了克服这个问题,有一种特殊的“虚拟”图形显示,称为Xvfb (X11 virtual framebuffer),它基本上在服务器上启动一个虚拟图形显示,并强制程序在其中绘图。

要在Xvfb环境中启动您的程序,您需要在您的机器上安装它(这通常需要安装xvfb包)。

下载和设置它的一些资源:

Link 1

Link 2

然后使用python文件运行xvfd-run,视频将保存到您指定的目录中:

代码语言:javascript
复制
xvfb-run -s "-screen 0 640x480x24" python cartpole_monitor.py

还有其他方法,比如在与OpenGL extension(GLX)的X11会话中运行代码,或者在SSH连接中使用X11转发。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65595244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档