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.
- 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.
- Put
VitaRecorder.suprx
in yourtai
folder. - Add the plugin under a section for the game you want to use it for (eg
*GTAVCECTY
) in yourconfig.txt
file. (Alternatively you can place it under*ALL
in a section wheremain
is 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
*KERNEL
section in yourconfig.txt
.
Here's an example of a config.txt with the plugin installed in *ALL
section:
*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 vid_TITLEID_DATE_TIME.mjpg
.
These files are raw mjpeg data and can be played with several video players such as ffplay
or WMP
.
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
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:
- @Sarkies_Proxy
- Badmanwazzy37
- Colin VanBuren
- drd7of14
- Freddy Parra
- Max
- Tain Sueiras
- The Vita3K Project
- Titi Clash