Re: How to make a 480fps @ 480Hz video!? [Success!]

Discussion about 120fps HFR as well as future Ultra HFR (240fps, 480fps and 1000fps) playing back in real time on high refresh rate displays. See Ultra HFR HOWTO for bleeding edge experimentation.
yhlee
Posts: 9
Joined: 24 Apr 2018, 09:54

Re: How to make a 480 Hz video!?

Post by yhlee » 24 Apr 2018, 18:13

Hi Chief,

I'd by no mean harm the UFO copyright of course!

I do get puzzled by the fact that ffmpeg+MPC-HC cannot produce the 480Hz output as what I see on your webpage.

(I assume it is JS + html5? I am not at all familiar with web-page programming.)

Are you suggesting that the jsfiddler example will provide a 480 Hz frame rate?

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: How to make a 480 Hz video!?

Post by Chief Blur Buster » 24 Apr 2018, 18:39

yhlee wrote:I do get puzzled by the fact that ffmpeg+MPC-HC cannot produce the 480Hz output as what I see on your webpage.
Are you using low-resolution graphics? 1080p480fps will not be possible on most GPUs. Try 480p480fps or lower resolution. It is a big firehose of data.

An 8K60fps decoder will technically do 1080p960fps at the same bitrate, but there are also other overheads, so add at least a 75% safety margin, so an 8K60fps decoder will be able to be trusted at 480p960fps -- they were never designed for such frame rates at real time, but it can be made to work if you are using certain kinds of players that will framepace the output frames accordingly.

Sometimes graphics drivers fight against us (e.g. poorly framepaced decoders) but a lot of framepacing is done by the video player itself, or the player can actually de-jitter the framepacing (buffering and synchronizing to refresh cycles).

Players don't always know the refresh rate of the display. They play framepacing their frames to the video file's internal time, not necessarily synchronized to refresh rate. That's why 60fps videos sometimes have 1 stutter every few seconds, because the display was 59.94Hz or 60.035 Hz or whatever.

You need a microsecond-accurate player, not a millisecond-accurate player. A single millisecond will frame-roundoff too much. 480Hz means each refresh cycle is only 2 millisecond! So if a player is a fraction of a millisecond late (even 100 microseconds), it could roundoff to the next refresh cycle, especially if it's presented extremely close to the refresh-cycle boundaries. So to more likely grid-fit the playback frames to their specific refresh cycles, you need either (A) a player that intentionally syncs to refresh rate, or (B) a microsecond accurate player that will framepace impeccably accurately.

Test different players, like SMPlayer, Chrome player, Windows Media Player, VLC, etc, until you hit a player that plays smoother. It makes a massive difference, some of my .mp4 files stutter a lot more than others in other players.
yhlee wrote:(I assume it is JS + html5? I am not at all familiar with web-page programming.)
Yes.
yhlee wrote:Are you suggesting that the jsfiddler example will provide a 480 Hz frame rate?
Yes. It will rotate 1 image per refresh cycle, so it will speed up rotations on higher Hz displays.
It rotates the 4 images 480 times on my 480Hz display.
If you need a custom modification of this jsfiddle, please email [email protected]
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
lexlazootin
Posts: 1251
Joined: 16 Dec 2014, 02:57

Re: How to make a 480 Hz video!?

Post by lexlazootin » 25 Apr 2018, 03:53

I know it's not really what you wanted but i thought it would be fun to make some 480fps gameplay.

Image

I used a demo from my WR run of HL so it's 480fps realtime playback. I can't view this at realtime because MPV keeps capping me at my 240hz and VLC just poops itself everytime but you should give MPV a try.

http://www.mediafire.com/file/5wfhp9rgm ... fps265.mp4

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by Chief Blur Buster » 25 Apr 2018, 07:46

That's fantastic, probably a world's first attempt of an UltraHFR gameplay recording!

The 480Hz mode is 960x540 but 640x480 is fine -- scaling quality is bad at that, though

Your video gives me an opportunity to test multiple video players. I am going to try each one of them and figure out which video players will push those frames 480 times a second precisely to their correct refresh cycles without stutter. I have some tactics to do that including the http://www.vsynctester.com Pink-Cyan flicker technique, to more easily detect framedrops...I'd have to run some custom command lines to insert overlay graphics on every frame like that, though.

- Windows Media Player (black -- can't play anything)
- SMPlayer (works, but "Your system is too SLOW to play this!" -- huh, I'm an i7-7740X (5GHz) with a 1080Ti Extreme)
- VLCPlayer (plays at full speed in bursts, freezes randomly for a few seconds before resuming)

I think I need to convert this to H.264 (another opportunity to see if a video converter can preserve 480 frames per second information!). because H.264 is much easier-playing for most GPUs and most players even if the file size is sometimes much bigger. Technically I should have the bandwidth but players were never designed to spray framerate out of the wazoo like this, so we're in semi-uncharted territory.

I don't think *any* video player writer has access to a 480Hz display, but it might be time to submit some Bugzilla/Github issue reports.

How long did it take you to create the 480fps video? Were you able to avoid using the "screenshot-every-frame" technique?

We need easier workflows to make UltraHFR gameplay videos than what Hypermatrix did in partnership with me for this 120fps video which involved RAID and screenshotting every frame realtime.

But now I have a Samsung 960 Pro M.2 SSD so I should be able to realtime record 480fps at 960x540.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

yhlee
Posts: 9
Joined: 24 Apr 2018, 09:54

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by yhlee » 25 Apr 2018, 08:22

I've tried it as well. This video can be played at 480 Hz using my setup with MPC-HC player.

Thanks to you, I noticed that the cause of my 8-image-loop video cannot be played at above 400 Hz is the resolution-setting (it was made in 1280p but played on 960p).

Now I generate the image at anything equal or below 960p, it can run at 480 Hz.

But still, there is a frame-drop every few seconds! Now I am trying to solve this annoying frame-drop.

User avatar
RealNC
Site Admin
Posts: 3730
Joined: 24 Dec 2013, 18:32
Contact:

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by RealNC » 25 Apr 2018, 08:29

yhlee wrote:But still, there is a frame-drop every few seconds! Now I am trying to solve this annoying frame-drop.
If you're using mpv, try "--video-sync=display-resample".
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

yhlee
Posts: 9
Joined: 24 Apr 2018, 09:54

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by yhlee » 25 Apr 2018, 08:46

Wow, MPV does the thing! I haven't even use the command yet!

Thanks to you all! lexlazootin, RealNC and Chief!

Quick summary for generating a 480Hz video from 8 images of my working case:

OS: Windows 10 Enterprise

Hardware: Intel Xeon E3-1230 V2 @3.3 GHz, 8 GB RAM, EVGA GTX 970, Ziswork 480 Hz monitor (display port).

Generating video from 8 images (1.png through 8.png) via ffmpeg (with default codec, H264, 960x540p):

ffmpeg -loop 1 -r 240 -start_number 1 -i "%01d.png" -t 10 -an out.mp4

Playback with MPV.

PS. Only when the video ends will there be a drop-frame, and it works pretty well during playback.

Performance in other media software, for your reference:
-Windows media player------can't play
-VLC----------------------------drop frame every half second
-MPc_HC x64------------------drop frame every few seconds
-MPV----------------------------drop frame only at the end
Last edited by yhlee on 25 Apr 2018, 09:49, edited 3 times in total.

User avatar
Chief Blur Buster
Site Admin
Posts: 11647
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by Chief Blur Buster » 25 Apr 2018, 09:47

We're pioneers here.

It will be a few years before 1080p 480Hz arrives, and recording Crysis at such frame rates. I can get over 200fps in Crysis with somewhat reduced details at full HD.

The low resolution of 540p 480Hz -- plus the ugly scaling -- limits the visible benefits but it certainly is the smoothest gameplay video I have ever seen.

Winner winner chicken dinner goes to MPV!
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on Twitter

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

User avatar
RealNC
Site Admin
Posts: 3730
Joined: 24 Dec 2013, 18:32
Contact:

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by RealNC » 25 Apr 2018, 10:11

One more thing: mpv has seamless looping. If you're using stand-alone mpv, just press L (must be capital L, so press shift+l). If you're using SMPlayer as the front-end, select "Play->A-B section->Repeat".

It should then loop the video indefinitely without frame dropping at the start/end junction. In theory, this means you can have a video with only 8 frames in it. Of course that makes it impossible to press L while it's playing, so you should use the "--loop" option instead (mpv --loop myvideo.mp4 for example).
SteamGitHubStack Overflow
The views and opinions expressed in my posts are my own and do not necessarily reflect the official policy or position of Blur Busters.

User avatar
lexlazootin
Posts: 1251
Joined: 16 Dec 2014, 02:57

Re: How to make a 480fps @ 480Hz video!? [Success!]

Post by lexlazootin » 25 Apr 2018, 11:39

im a dumby, i couldn't play it back because i had G-Sync and V-Sync on, now it works at 480fps on MPV just fine.

I used the startmovie command that exports bmp files, i know how to stitch them up so it's not a problem. Yalter has a plugin that you can export directly into x264 with the setting you want, it works via ffmpeg but he made it only for Linux and hes not the type of person that will make something for windows if he doesn't have to :lol:

I made another in the correct resolution and on x264, it's probably a lot easier to decode.

http://www.mediafire.com/file/c3jhjmu54 ... fps264.mp4
https://i.imgur.com/xe02ywo.png
Last edited by lexlazootin on 25 Apr 2018, 22:56, edited 1 time in total.

Post Reply