快捷方式

自定义视频渲染

调整视频渲染设置

TorchRL 很大程度上依赖于 torchvision.ioPyAV 模块来实现其视频日志记录功能。尽管这些库非常方便且功能强大,但并不容易访问您可用的各种旋钮和设置。

本指南希望阐明自定义视频渲染背后的通用原则,并向您展示如何根据自己的喜好手动调整回滚的渲染设置。

一般原则

最终,torchvision.ioPyAV 调用 FFmpeg 库来渲染视频。

换句话说

  • 任何可以馈送到 FFmpeg 的内容,我们也可以馈送到 TorchRL 的 Loggers

  • 对于我们希望使用的任何自定义设置,我们必须从 FFmpeg 的文档 中引用它们

视频渲染自定义示例

假设以下代码片段为我们提供了非常模糊的视频,即使我们提供了清晰的逐帧图像来拼接在一起

from torchrl.envs import GymEnv, TransformedEnv
from torchrl.record import CSVLogger, VideoRecorder

logger = CSVLogger(exp_name="my_exp")
env = GymEnv("CartPole-v1", from_pixels=True, pixels_only=False)

recorder = VideoRecorder(logger, tag="my_video")
record_env = TransformedEnv(env, recorder)
rollout = record_env.rollout(max_steps=3)
recorder.dump()

由于 TorchRL 的默认视频编解码器是 H264,因此我们必须更改的设置应该在其中。

出于本示例的目的,让我们选择一个 恒定比特率因子 (CRF)17 和一个 预设slow,如文档中所建议。

我们可以通过将所有我们想要的设置(作为关键字参数)附加到 recorder 来提高视频质量,如下所示

# The arguments' types don't appear to matter too much, as long as they are
# appropriate for Python.
# For example, this would work as well:
# logger = CSVLogger(exp_name="my_exp", crf=17, preset="slow")
logger = CSVLogger(exp_name="my_exp", crf="17", preset="slow")

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源