自訂影片渲染¶
調整影片渲染設定¶
TorchRL 在其影片日誌記錄功能方面,很大程度上依賴 torchvision.io 和 PyAV 模組。儘管這些函式庫相當方便且功能強大,但要存取您可使用的各種旋鈕和設定並不容易。
本指南希望能闡明自訂影片渲染背後的通用原則,並向您展示如何手動調整您喜歡的 rollouts 的渲染設定。
通用原則¶
最終,torchvision.io 和 PyAV 會呼叫 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
來提高影片品質,如下所示
recorder = VideoRecorder(logger, tag = "my_video", options = {"crf": "17", "preset": "slow"})