VideoExport插件教程:序列帧录制与FFmpeg合成参数全面解析
2026/9/19 12:35:20 网站建设 项目流程

简介:《视频导出插件教程-VideoExport V1.1.0》是一份面向恋活工作室玩家的PDF文档,详解插件从启动到完成录制的完整流程,可输出MP4、WEBM、GIF、AVI及序列帧,适合游戏录像、动画制作与自定义渲染需求。资源为单个PDF文件,约310KB,内容由插件开发者joan6694编写,另附中文整理说明。当前已有3691人学习,既适合刚接触该插件的新手快速上手,也方便有经验的玩家对照排查设置问题。文档先介绍通过左Ctrl+E热键启动插件,并提醒与部分人物卡导出插件存在冲突;接着逐项解析帧速率(常见24、25、30、50、60)、自动合成视频、自动删除序列帧、按帧/秒/动画时间设定结束条件、自定义输出分辨率等核心选项。进阶部分则对比Screenshot Manager与内置BMP捕获插件,讲解3D模式、MP4/WEBM的编码器(H.264/H.265/VP8/VP9)质量与预设,以及GIF、AVI的适用场景,同时说明cfg配置文件对输出目录和帧缓存目录的调整方法,帮助用户按需组合设置,得到清晰流畅且体积可控的录制结果。

1. 这个录制插件为什么绕开了显卡性能

VideoExport 这类插件的思路和录屏软件完全不同。常规录屏(OBS、Bandicam 这类)走的是抓屏路线,画面经过 GPU 渲染管线后,在显示环节被截取并编码,机器性能不够时帧率直接掉。VideoExport 的做法是先让游戏画面白屏,把渲染链路里写屏的那一步替换成“写序列帧”,也就是一帧一帧 BMP 落盘,最后再统一交给 FFmpeg 合成。这个方案带来的直接效果是:录制帧率和游戏内实时帧率解耦,哪怕场景卡到十几帧,导出的视频仍然能维持在 24/30/60fps,代价是录制耗时是视频时长的数倍。适合的场景很明确——渲染负重、需要稳定帧率、或者打算通宵挂机出片的场景;如果你是做 MMDFormat 舞蹈视频、场景展示、或者要给 3D 作品做预渲染,这个插件比外挂录屏靠谱得多。

2. 从菜单到 CFG:把录制参数一次说透

启动热键是左 Ctrl+E,这一点建议刻意记住,因为官方教程里提到的冲突问题非常实际:工作室的某个人物卡导出插件会占用同一组热键,表现是启动了没反应。绕过办法是先保证场景内没有人物,启动插件后再添加角色。如果只按下没弹菜单,优先排查是不是已经有别的东西吃掉了这个组合键。

菜单里第一组要动的是录制控制和帧率。Framerate 决定每秒写多少帧序列帧,常用值之间的取舍如下:

帧速率流畅度表现产出体积适用场景
24电影感,轻微顿挫最小慢节奏镜头、剧情展示
25/30观感连贯,通用性最好中等大部分网络平台发布
50/60丝滑,动作细节完整明显增大舞蹈动作、快速镜头、后期慢放

设置帧率时不要只看流畅度,还要把结束条件一起算进去。Limit By 提供三种结束方式:Frames 按帧数截断、Seconds 按秒数截断、Animation 按动画时间截断。三者的换算关系很直接:总帧数 = 总秒数 × 每秒帧数。我一般会先确定需要的视频长度,再反推计数器数值。比如目标是一条 15 秒的 30fps 视频,Limit Count 填 450;如果是 60fps 就是 900。这里容易踩的坑是 Animation 模式的判定方式和前两种不同,它的计数器与当前播放的动画时间轴绑定,而不是墙上时钟,所以实际耗时受动画播放速度和游戏内部时钟影响,不能拿秒表硬比。

分辨率设置放在 Resize 里。不勾选时按当前屏幕分辨率输出,勾选后可以手动指定宽高,Default 按钮一键填回屏幕分辨率。建议通常保持关闭,让它跟随工作室的分辨率设置。真正的输出位置由配置文件决定,默认视频放在BepInEx\plugins\VideoExport\Output,序列帧放在BepInEx\plugins\VideoExport\Frames。帧序列文件按“前缀 + 帧序 + 后缀 + 扩展名”命名,帧序是纯数字不补零,这一点后面手动合成视频时要特别注意排序方式。

Auto Generate Video 和 Auto Delete Images 这两个开关决定了录制结束后干什么。前者打开会调用 FFmpeg 把序列帧合成为 MP4/WEBM/GIF/AVI,后者在合成完成后自动清掉 Frames 目录里的 BMP。如果你只是想要序列帧做后期,可以关掉自动合成;反过来,只想出成品视频不想留中间产物,就两个都开。开始录制前把 Start Recording On Next Click 打开,它会等下一次鼠标单击才真正开始,这个设计对 VMD 插件尤其有用——你可以先把动画调好,点击一次播放键的同时触发录制,播放和录制在同一点起步。

配置文件的调整逻辑和 GUI 菜单完全对应。插件把设置持久化在com.joan6694.illusionplugins.videoexport.cfg,用文本编辑器打开后会看到类似这样的内容:

selectedScreenshotPlugin=0 framerate=60 autoGenerateVideo=true autoDeleteImages=true selectedLimitDurationType=0 limitDurationNumber=7200 selectedExtension=0 resize=false outputFolder=BepInEx\plugins\VideoExport\Output framesFolder=BepInEx\plugins\VideoExport\Frames

其中selectedLimitDurationType的 0/1/2 分别对应 Frames、Seconds、Animation,selectedExtension的 0/1/2/3 对应 MP4、WEBM、GIF、AVI。GUI 里每改一个值,最终都会落到这个文件;反过来直接改配置也能生效,适合批量部署或者给多台机器统一参数。注意limitDurationNumber类型是小数,改的时候保留小数点不会报错,但实际是按截断处理的。多数情况下在菜单里设置完直接录就行,cfg 主要用于复现已有录制配置——把整个文件拷贝给同事或换机时,插件行为能完全一致。

3. 捕获链路的选型:Screenshot Manager、Build-in BMP 与 3D

整个录制管线的上游是屏幕捕获插件,VideoExport 并没有自己去做抓屏,而是把抓屏职责抽象出来,允许在两种实现之间切换。Screenshot Manager 是 IllusionMods 组织开发的捕获方案,支持捕获取景器画面和 360 度全景画面,默认带超采样抗锯齿;Build-in BMP 是作者自己写的 BMP 导出器,只提供超采样倍率调节,不支持透明通道。选型时要意识到:Build-in BMP 更接近原始实现,兼容性稳,但能力上限低;Screenshot Manager 适合要全景、抗锯齿或后续接 VR 渲染的场合。如果录制过程中出现花屏、画面错位、或者透明背景需求,优先怀疑捕获插件选错了而不是参数没调对。

超采样倍率(bmpSizeMultiplier)是个容易误用的参数。它表示输出分辨率相对屏幕分辨率的倍数,2 就是宽和高各翻一倍,像素总量是四倍。超采样对最终画质的影响本质上是抗锯齿,对静止帧特别明显,阴影边缘和发丝轮廓会平滑很多,但代价是写入磁盘的 BMP 数量不变、单张体积变大。当机器负载高、或者磁盘写入速度跟不上帧率时,我一般不开超采样,而是把分辨率直接拉高再靠视频编码降下来,效果接近且省内存。

3D 输出由 Screencap_in3d 控制,勾选后插件会录制左右眼两个视角的画面,合成双目视频以配合 VR 设备。这个功能只有在选择 Screenshot Manager 时才生效。开启后录制时间是普通模式的近两倍,因为每帧要渲染两次。同时,Screencap_captureType 可以选择 0(摄像机模式)和 1(360 度全景模式)。全景模式适合做沉浸式场景展示,但输出分辨率要求高,编码压力也会显著提升,不推荐在低端配置上开。

Rotation 旋转参数在 GUI 里是 None、90°CW、180°、90°CCW 四个选项,在 cfg 里则映射为 0/1/2/3。需要留意的是它旋转的是输出视频的方向,不是游戏画面的相机角度。我通常会在手机竖屏观看的场景里把横向录制的视频旋转 90°CW,这样可以省掉一道后期转码的工序。Dynamic Bones Update Mode 控制物理引擎更新骨骼的频率,Default 是固定的 50Hz,Every Frame 则是与录制帧率同步。当录制帧率高于 50fps 时,Every Frame 能让头发、裙子这类动态骨骼表现更顺滑,但物理计算量也相应增大;帧率不高的情况下维持 Default 即可。

4. 编码参数对照:MP4 / WEBM / GIF / AVI 怎么选

VideoExport 的 Format 下拉框一共四个出口,实际编码路径差异很大。MP4 是通用性最好的选择,封装设计优秀,几乎全平台可播放;WEBM 作为开放格式在网页端表现好;GIF 只有 256 色,色彩还原最差;AVI 则是旧设备的兼容性选项。既然教程本身给的 PDF 手册就是「快速定位 + 参数说明」的结构,下面按格式把关键参数捋一遍,方便录制前直接做决定。

MP4 的编码配置包含 Code、Quality、Encoding Preset 三项。Code 默认 H.264,H.265 虽然同体积画质更好,但截止到目前为止,大量播放器、浏览器、聊天工具对它的支持仍然不完整,如果视频要发出去给别人看,别碰 H.265。Quality 是 CRF 一类的质量参数,数值越小画质越高体积越大,默认 18 对肉眼来说基本无痕。Encoding Preset 控制编码速度与体积的平衡,越慢体积越小。经验值如下:

场景编码器QualityPreset说明
网络发布通用H.26418-206 或更慢画质体积均衡
高码率留档H.26414-16最慢档接近无损,体积大
本机预览H.26423最快档快速出片看节奏
移动/浏览器兼容H.264206避开 H.265 兼容性问题
极限体积压缩H.26518慢速仅当确认所有播放端支持

WEBM 的参数结构和 MP4 对应,Code 可选 VP8 和 VP9。VP9 同体积下比 VP8 画质好,但移动平台支持度次一些。WEBM 的 Quality 用 10 左右对肉眼就足够。Encoding Preset 在 cfg 里对应 webmDeadline,取值范围 0-2,0 最慢最精细,2 最快体积最大。

GIF 是一个需要提前接受其局限性的格式。256 色调色板意味着渐变和复杂纹理必然出现色块,作者给出的建议是低分辨率导出。实际使用中我一般把分辨率压到 720 以下再生成 GIF,这样色块问题在视觉上会被掩盖不少。另外需要注意 Build-in BMP 捕获器和 GIF 搭配可能不正常,建议使用 GIF 时切到 Screenshot Manager。AVI 则纯粹是面向老设备的兜底选择,新项目里没必要主动选它,只有在旧型号播放器不支持 MP4 解码时才考虑。

mp4Preset在 cfg 中的取值范围是 0-8,依次变快,0 最慢。这个值在 GUI 里直接选的话,推荐从中间档位起步:录制时长越长,越值得把档位调慢换取体积收益。与 x264 的 preset 对应关系可以理解为0≈placebo4≈medium8≈ultrafast,但不建议完全等价看待。FFmpeg 内部还是按参数逐项去设置的,所以实践中更稳妥的做法是观察同场景下两次渲染的产出大小和耗时,再决定往快调还是往慢调。

5. 控制录制节奏:Animation 计数、帧序列与挂机渲染

Animation 结束条件值得单独提出来说。它按动画时间轴计数,配合prewarmLoopCount使用可以跳过动画前一段不稳定的起始帧。比如角色的裙子物理在动画开始后的前 10 帧还在摆动收敛,直接录会录进一段抖动,把 prewarmLoopCount 设为 10,插件会等动画播过 10 帧后才真正开始写帧序列。这个参数的实际作用相当于“预热”,对依赖物理演算的动画镜头非常关键。

帧序列生成完成后如果没开 Auto Generate Video,可以手动调用 FFmpeg 合成。用下面这条命令能把 Frames 目录下所有 PNG/BMP 按帧序合成 MP4:

ffmpeg -framerate 60 -i "BepInEx/plugins/VideoExport/Frames/frame_%d.png" -c:v libx264 -crf 18 -pix_fmt yuv420p output.mp4

注意-i里的%d是通配数字序号的占位符,因为插件输出的帧序不补零,这种写法能正确匹配 1、2、3 直到任意位数;如果文件名是补零的,要改成%04d形式。-pix_fmt yuv420p是兼容性关键,不加的话某些播放器会出绿屏或无法硬解。编码参数参考上一章的表格按需调整即可。

通宵挂机渲染时,把 Empty Scene Before Encoding 和 Close Studio When Done 都勾上。前者保证 FFmpeg 编码阶段不会受场景里物理演算的干扰,后者在全部完成后直接关游戏进程。这样 GPU 可以在渲染结束后自动降负载,避免早上起来发现机器热了一整夜。录制中白屏是设计行为,不是崩溃——这套插件本质上是把整个渲染过程从实时推到了编码阶段,白屏期间屏幕只是没有回显,序列帧仍在按设定帧率往磁盘写。判断是否真正卡住,看磁盘写入活动和 Frames 目录的帧数增长比看画面可靠。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询