I have created some videos of a game I played to upload to YouTube. The game plays at 60fps & the original videos have been recorded at 60fps. However, YouTube re-encodes them down to 30fps using a simple frame drop. The problem I am facing is with the flashing of enemies when they are hit. Because of the number of frames used for the flashing, it doesn't always show up when processed down to 30fps using simple frame drops.
So, I have used FFmpeg with the
minterpolate filter to blend the frames when converting to 30fps before uploading. However, it doesn't seem to always work. Sometimes it just does frame drops & I have no idea why.
Here is an example of a video where the blend method worked:
Note that you can always see the flashing when the enemy is hit.
Here is an example of when the blend method did not work:
Notice how sometimes the flashing is not visible because those frames were dropped.
I am 90% sure both the videos were created using the same options:
-c:v libx264 -preset veryslow -crf 18 -vf minterpolate=fps=30:mi_mode=blend,scale=-1:480:flags=bicubic,pad=640:480:45:0 -pix_fmt yuv420p
It is possible that I made a mistake & the first video was encoded with different options. But if that is the case, I do not remember what the options were.
There is also the
tblend filter which I have used, but I do not like the quality of the resulting video from it. I would much rather use the
minterpolate method. Am I using it wrong? Is there a way to consistently get the results of the first video?
I found the
minterpolate method & how to use it searching around Google that resulted in some answers here on StackExchange & its sister sites (example 1, example 2). But I don't understand why it has stopped working. I have even tried re-arranging the order of the filters & their arguments.
At the time of writing this question, every video I try to encode results in simple frame drops instead of blending using the
- Windows 10 64-bit
- FFmpeg v4.2.3
Edit: I found this in the FFmpeg documentation for
Frames are dropped if fps is lower than source fps
But that only appears to be the case when using "blend" method.