I know that there have already been many discussions about exports, but I cannot explain the following difference:
I have created 1 identical project each with Shotcut, CapCut, VSDC Pro.
Each the same:
Input file.
Cuts (7 clips).
Filters (4 x text, all clips enlargement 110% no rotation, 1 clip slow motion).
Settings for the export (codecs 5 mbit Hardwareenc)
Time of export directly one after the other (Shorcut, CapCut, VSDC then for comparison CapCut, VSDC, Shotcut).
Projekt-Film duration 3.06 min.
Export-Results:
Shotcut = creates 125 MB file in 14 minutes (840 seconds).
CapCut = creates 129 MB file in 45 seconds.
VSDC = creates 123 MB file in 57 seconds
All exported films look the same in terms of quality.
How can this serious difference in encoding time occur?
My hardware is:
Win 10
CPU = i5
Ram = 16 GB
All Video-Software runs on SSD
All Films exported to SD
In Shotcut (win64-221221 portable) it makes no difference whether I switch on hardware or software encoding. In both cases the same file size + encoding time.
Your question is focused on encoding time, but your project has other variables like cuts and filters. The implementations for those filters are completely different from one program to another. Maybe try a simpler test with no cuts or filters and compare only the encoding time. Even then, there are algorithm and architectural differences between the programs so there will be some difference.
The others are probably using the GPU for the entire processing. Shotcut does not, and it is not easy for us. You can read the FAQ on our web site about it.
CapCut is developed by ByteDance, a company with 130,000 employees and a revenue of $60Billion per annum. Shotcut is developed (mainly) by Dan and Brian with an annual revenue of $0.
I did the experiment Brian suggested on my 6-Processor AMD Rizen 5 4500U system with integrated Radeon graphics.
Input a 1-minute video
Made no changes to it
Exported it in CapCut (Av Bit-rate: 12.8Mb)
Exported it in several formats with Shotcut (Av-Bitrate: 12.8Mb and Quality based VBR @ 55%)) Hardware-encoding, Software-encoding, parallel processing always enabled.
The main difference between CapCut and Shotcut is the use of the GPU (65% vs 12%-15%). I suspect that CapCut uses the GPU heavily for filters too, while Shotcut doe not (normally) use the GPU-based filters).
If Shotcut could have used 65% of the GPU, rather than 12% it would have done the encoding faster than CapCut 47s X 12 / 65 = about 10s.
The default (quality VBR @ 55%) results were both comparable to the Av Bit-rate results regarding viewability.
Although mediainfo reported the CapCut video as Constant Framerate, when I input it into Shotcut it reports it as Variable Framerate!
When using software encoding, there is also a big export time difference between preset=slow and preset=veryfast in the Advanced > Other tab. A fair comparison to other video editors needs to include the preset used for export. Just as an FYI to the OP. @Elusien your comparison was very insightful.
I have Parallel processing enabled and many other tips for encoding with shotcut, too.
I know that rezising requires a lot of processing power, but as mentioned, I used it in all 3 programmes.
I just figured out how to put a resize filter (110%) on the clip in CapCut and used the same factor for the Size, Position, Rotate filter in Shotcut. With Shotcut I used the Default preset for exporting (quality = 55%) and did exports using Hardware & Software, Parallel Processing and No Parallel Processing. The results are below. As I suspected, the resize filter in CapCut uses the GPU for considerable speed-up. The export time is 10x faster than the best time for Shotcut.
Just out of interest I imported the file into Microsoft’s Window11 native video editor (ClipChamp) and just exported it. It produced a file of size 56MB and the export took 100s using just 45% of the CPU and 25% of the GPU.
Considering Microsoft bought the ClipChamp company in 2021 for an undisclosed multi-million dollar amount, I don’t think Shotcut is doing too badly in beating it hands-down on export time.
When making quantitive comparison’s it is always best to start at the lowest level (no filters), then move up. The figures show that straight exports without filters are roughly comparable (2x or 3x), whereas it is obvious from the second set of figures that the lack of GPU use by Shotcut’s filter is having a major performance impact (10x) compared to CapCut.
Right.
It is appropriate for testing and especially for finding bottle necks.
For a personal decision, however, settings that apply to one’s own profile are important.
I loved using this type of tool (Software Profilers) in years gone by.
Now in Software they just seem to have daily meetings and playing focus on their “Agile Management skills” with toys like that, less important.
Mind you in larger Film productions, literally months are spent in Post-Production once all the scenes are shot. So in the scheme of things a few seconds here or there don’t make a big difference.
Has anyone run the Profiling tool yet ? and produced a Report ?
This topic became interesting to me and I conducted the same test on my laptop. I used a 4K 60fps 30 second video (pre-generated countdown in shotcut). My results were:
In the shotcut application, I used the GPU from NVidia + parallel processes. In CapCut - everything is by default.
Unfortunately, I see that the SPR filter is very resource intensive, I want to believe that one day, my favorite shotcut will use my video card to its full potential, and not just when ffmpeg is running.