Vita Recorder is a plugin that allows to record video clips during your play sessions.
The code is based off VITA2PC at which has been applied improvements and the streaming feature has been replaced with file recording.
Current features set
- Allows to record clips of unlimited duration (given enough free storage is available).
- Records clips in RAW mjpeg (can be opened on Windows Media Player and other popular video players as well as can be easily converted to more common formats on PC).
- Allows to downscale on CPU the output to 480x272 allowing for faster transcoding.
- Performs hw encoding in MJPEG thanks to sceJpegEncoder when possible. When resources are not enough, libjpeg-turbo is used instead, as fallback, for software encoding.
- Allows to perform both asynchronous and synchronous recording (The first won't affect game performances but you may end up having some artifacts or some missing frames, the latter will lower game performances but will produce frame perfect clips).
- Allows to apply frameskip on synchronous recording.
How to install
- Add the plugin under a section for the game you want to use it for (eg
*GTAVCECTY) in your
config.txtfile. (Alternatively you can place it under
*ALLin a section where
mainis disabled (check down for an example) but some apps may crash with this due to the resources requirements).
- If you want to use this plugin on commercial games, you'll need to install ioPlus as well by adding it in your
*KERNELsection in your
Here's an example of a config.txt with the plugin installed in
*KERNEL ux0:tai/PSVshell.skprx ux0:tai/AnalogsEnhancer.skprx ux0:tai/fd_fix.skprx ux0:tai/kubridge.skprx #ux0:tai/gxmdbg.skprx ux0:tai/ioplus.skprx *ALL ux0:tai/WDNR.suprx *main ux0:tai/pngshot.suprx ur0:tai/henkaku.suprx *!main *ALL ux0:tai/VitaRecorder.suprx *NPXS10015 ur0:tai/henkaku.suprx *NPXS10016 ur0:tai/henkaku.suprx
- L + Select = Open the Config Menu
- L + Start = Start/Stop Recording (Shortcut)
- Triangle = Close Config Menu (when in Config Menu)
The output videos can be found in
ux0:data named as
These files are raw mjpeg data and can be played with several video players such as
You can also use
ffmpeg to convert them in more popular MP4 videos with a command like this (Note: This creates videos with fixed 25 fps):
ffmpeg -i vid_GTAVCECTY-17_04_2021-21_02_33.mjpg -pix_fmt yuv420p -b:v 4000k -c:v libx264 vid_GTAVCECTY-17_04_2021-21_02_33.mp4
Plans for the future
At the time of writing, the plugin is in an experimental stage. Current plan for the future is:
- Add raw audio recording.
- Move to AVI container (it would allow to store RAW PCM data for the audio part and MJPEG for the video part.)
- Create a kernel plugin variant. (udcd_uvc can be used as base, the idea is to allow multiapp recordings)
- Whenever possible (mostly small homebrew apps due to the high resources requirements), stick to SceLibMp4Recorder for MP4 recording. (AVC+AAC)
- Using Best or High video quality may result in empty videos being created (That's cause not enough resources are available for the encoder).
- Games with variable resolution may acy weirdly since there's no internal fixed rescaling and mjpeg doesn't support variable resolution between frames. (eg: Everybody's Golf)
- System apps and Livearea are not supported (plan for those is to handle them directly with the future kernel version of the plugin instead of messing with SceSharedFb in user space)
This plugin is an entry for the KyûHEN PSVITA homebrew contest.
Special thanks to the distinguished patroners for their awesome support:
- Colin VanBuren
- Freddy Parra
- Tain Sueiras
- The Vita3K Project
- Titi Clash