I’m not sure if this is the right place to ask or if there’s a more appropriate forum for suggestions (I might have missed it if there is), but I was wondering if there would be any way for the OW2 devs to add a system for recording replays.
The idea is:
- User selects the replay they’d like to record.
- User sets the video resolution, frame rate, etc. (Imagine the Highlight recording menu)
- User sets the replay settings (like disabling hero and team banners that show up at the top by default in replays and removing player outlines), along with timestamps (start and stop times in the replay).
- User moves to position / POV that they would like to record.
- User hits “Save Highlight” (or similar) button, and a screen like the Highlight saving screen opens to track progress.
This would make it easier for anyone to be able to record things they didn’t quite get the chance to (or forgot to) press the highlight button for while in-game, and the start and stop timestamps would also mean being able to record longer or shorter segments than the fixed highlight length. This would also make it so that a user could record different angles by recording “highlights” from other positions on the map without having to know about OBS Studio or having the hardware to record it in real time.
I’m not sure exactly how hard this next part would be in a code base like OW2’s, since my only experience with something like this is writing a sorting algorithm visualizer in C with SDL that allows saving the visualization to video, but I would additionally like the option to provide an FFmpeg command to pipe rendered frames into and let the game do an offline (non-real time) render while still having more control over the quality of the video. Even better if I can specify resolution/frame rate combinations that my monitor doesn’t support (such as 4320p + 120 FPS), since the point would be to render frames to pipe into FFmpeg instead of displaying on my screen.
I like recording extremely high quality, high frame rate videos, but the best I’ve been able to do currently is lossless (YUV 4:4:4, QP0) 5760x3240 at 120 FPS by setting 2.25x DSR on my 4K monitor in Nvidia control panel (higher scale factors are infeasible to record in real-time for me), recording the replay at 30 FPS 0.25x speed with OBS Studio, recording a second time at lower quality 1x speed for the audio, and then speeding the video up to real time and syncing up the audio when editing in DaVinci Resolve Studio. This does give a really nice, crisp video when downscaled to 1080p120 (here, downscaling is acting as an extra super sampling anti-aliasing pass), but it requires changing settings and having the hardware capable of running OW2 at that resolution.
The FFmpeg command option could be similar to how BizHawk does it when recording TAS videos, where the user provides the encoding options, and the stuff dealing with piping into FFmpeg is handled internally. For example, I would like to be able to use something like this as an FFmpeg command to record (after specifying resolution and frame rate in the UI): -c:v libx264 -preset:v ultrafast -profile:v high444 -pix_fmt yuv444p -crf 0 -c:a pcm_f32le -ar 48000
I know this would be an incredibly low priority feature, especially the FFmpeg part since there would likely only be a handful of people who would actually use that, but I believe that adding the ability to record segments of replays in a way similar to how highlights get recorded would make it convenient for users who want to share clips with friends but don’t have the hardware or knowledge required to do so effectively.
For anyone interested in my process, I edit the 5760x3240 source video in DaVinci Resolve Studio (color correction, audio sync, and cutting to the parts I want), export to a lossless 10-bit 4:4:4 HEVC video, and use this FFmpeg command when downscaling:
ffmpeg -hwaccel cuda -i input.mov -c:v libx264 -preset:v veryslow -profile:v high -pix_fmt yuv420p -vf "scale=1920:1080:flags=full_chroma_int+full_chroma_inp+accurate_rnd+spline:sws_dither=ed" -rc-lookahead 240 -x264-params opencl=true -crf 10 -c:a flac output.mp4
I typically upload the result to Discord to share with my friends. I also record my friends’ clips like this for them, since they’re less knowledgeable about this stuff.
They’ve told me that they’re sometimes disappointed when they open Overwatch because their games don’t look like my videos. I want everyone to be able to share clips that look even better than they could have seen in real time when playing!