Fun Expander 2.5.2 - Video converter with ffmpeg to i-frames added [Updated 2022-04-11]

Thanks for the great explanation with pictures.
Tried it with different Min.Speed setting starting from 400 down. But only at Min.Speed 100 I didn’t get two added points for slower sections - so 100 works best for me. Will try the generated script for real with Handy.
But I think that is a good solution for my problem - no need to change the program.
Thx for your help :+1:

1 Like

what would be the batch command for the latest ffmpeg version ? Because it doesn’t support the -intra option and visibly fun expander needs it.

I’m also trying to find how to do the same thing as “-intra” in the latest version of ffmpeg.

Not really the best answer but, for now, I’m keeping an old version of ffmpeg that support the “-intra” parameter for my ‘optimize-for-OFS’ batch file.

edit: Found a parameter that seems to do the same thing. “-intra” can be replaced with “-g 1”.

Great Work. Love it. :heart:

1 Like

i just checked coretemp while converting with funexpander and noticed that 4 out of 10 cores are maxed out but the others arent used at all… maybe this could be improved so more cores are being used?

Do you mean when converting to i-frames? If you know the command for that in ffmpeg, i can implement it.

@HeelsLover69 @DoomSumo
I just tried running i-frame conversion with FunExpander and my CPU use all 32 cores (16 physical / 32 logical) so I would say that there are no issues with how FunExpander uses ffmpeg from a performance point of view.

I tested the following ffmpeg versions, which works fine and all cores are used:

  • ffmpeg 20190704 (exact version number isn’t available in the exe-file or readme.txt, but I believe it’s version 3.x.x).
  • ffmpeg 4.4.1

However, the latest 5.0.1 (built 3 days ago) doesn’t work at all. The command window that FunExpander open for ffmpeg is closed immediately and you barely see it. There seems to be some breaking change in 5.0.1 compared to earlier versions.

Regardless, FunExpander have no issues using all cores when using ffmpeg build from 20190704 or version 4.4.1 (at least not for me).

3 Likes

where can i get the latest version for ffmpeg and funexpander?

FunExpander is in the first post in this thread.
ffmpeg can be downloaded via Download FFmpeg
If you select gyan.dev as download source then you can download version 4.4.1. I never managed to get the brand new ffmpeg 5.0.1 to work at all with FunExpander. This is probably due to a breaking change in the command line options for ffmpeg 5 compared to earlier versions.

thx. so funexpander 2.5.1 is currently the newest version ?

I tried again with funexpander 2.5.1 and ffmpeg 4.4.1 and it still only uses 4 cores.
I have core i5 12600kf cpu

Yes, it is

i read in the internet that there is a way to check for the videos real resolution with ffmpeg. Maybe you guys can help me, i dont know where i can actually check for the real resolution.

Real resolution meaning that the video is tagged under 4k but has clearly less pixels visible than a real 4k video.

That CPU has a mix of performance cores (6) and efficiency cores (4), i.e. all cores are not the same, and a total of 16 threads since some cores support hyperthreading (probably the performance cores). That could explain why not all cores are used. This mix of cores is rather new in CPU:s and both applications and Windows execution scheduler can get confused by the setup and cause performance degradation due to bad scheduling.

Try to run ffmpeg 5.0.1 from the command line and see if you can get another result. Maybe the issue has been addressed in ffmpeg 5.

2 Likes

Don’t know about that, but maybe you can find what you are looking for using MediaInfo. There is both an application and an online version so that you don’t need to install anything. No files are uploaded to the Internet when using the online version. It tells you almost everything about the audio and video including codecs and codec options used.

the ffmpeg 5.0.1 version wont work for me either though. if i click on a vid i can see the cmd window open for a millisec and instantly closes.

hm for resolution it also says 4k… but seeing the vid, i can tell its not 4k in pixels , it has to be upscaled… maybe there is just no way to tell the real pixels i guess…

@DoomSumo
Open a command window (press windows key and search for cmd and you should have it).
Change to the bin folder where ffmpeg.exe version 5.0.1 is located.
Copy a video to that folder unless you want to specify the path to it in the next step.
Enter the following command and press enter:
ffmpeg.exe -i yourinputvideofilename -r 30 -filter:v “scale=2048:-1” -g 1 -qp 30 -acodec copy “youroutputfilename.mp4”
Have a look if your CPU load is better using ffmpeg version 5.

@HeelsLover69 I believe that the -intra command line option has been deprecated for awhile and was finally removed in ffmpeg v5. I also believe that -intra can be replaced by the option -g 1 or -g 0 (found conflicting information about it). The -g option seems to work with both v5 and v4. I haven’t verified the output completely yet though. However, MediaInfo shows High Intra in the format profile using -g 1 while -intra showed High 10 Intra in the format profile. The file size grew considerably as well, but I only tested on a 1080p file since I didn’t want to wait an hour or so for a VR-video. Will do that later and compare.

1 Like

I tested with -g 0 on a VR video that I’m currently scripting and that end result is similar size and performance in OFS is the same as with -intra. The -g setting basically tells the encoder how often it shall add an i-frame. If you want one every 10s and use 60 fps then you should use 600.

Thank you for your testing @sentinel. I will implement these, if it also works on my end. Maybe then I’ll have to queue you again to test it with ffmpeg V5. I’m not sure yet if I want to upgrade to that new version.