You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ursina引擎如何将渲染帧保存为图片或视频?

在Ursina引擎中保存渲染帧为图片序列或视频的方法

一、保存为图片序列

Ursina内置了截图API,通过帧更新回调可以实现自动捕获序列帧:

  1. 基础逐帧保存实现
from ursina import *
import time

app = Ursina()

def save_frame():
    # 用时间戳命名避免文件覆盖
    frame_name = f"frame_{time.time()}.png"
    # 直接保存到项目目录,不弹出选择对话框
    application.screenshot(name=frame_name, default_filename=False)

# 每帧触发保存
def update():
    save_frame()

# 测试场景
Cube()
Sky()

app.run()
  1. 优化:控制保存频率
    如果不需要逐帧保存,可以设置间隔帧数:
frame_counter = 0
save_interval = 5  # 每5帧保存一次

def update():
    global frame_counter
    frame_counter += 1
    if frame_counter % save_interval == 0:
        application.screenshot(name=f"frame_{frame_counter}.png", default_filename=False)

二、保存为视频

Ursina没有直接导出视频的内置功能,需通过「图片序列转视频」的方式实现:

  • 先按上述方法生成完整的图片序列
  • 使用第三方工具转视频:
    • 用ffmpeg命令行工具(高效便捷):
      ffmpeg -framerate 30 -i frame_%d.png -c:v libx264 -r 30 -pix_fmt yuv420p output.mp4
      
    • 也可以用Adobe Premiere、剪映等可视化工具导入序列帧后导出

额外提示

  • 调用application.screenshot()时,设置default_filename=False可跳过保存对话框,直接按指定名称存储
  • 若需要高清输出,可先调整窗口分辨率:window.size = (1920, 1080)
  • 用ffmpeg转视频时,确保图片序列是连续数字命名,否则无法正常识别

内容的提问来源于stack exchange,提问作者Saikat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:36:31