Export same project with CapCut, VSDC vs. Shotcut

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:

  1. Input file.
  2. Cuts (7 clips).
  3. Filters (4 x text, all clips enlargement 110% no rotation, 1 clip slow motion).
  4. Settings for the export (codecs 5 mbit Hardwareenc)
  5. Time of export directly one after the other (Shorcut, CapCut, VSDC then for comparison CapCut, VSDC, Shotcut).
  6. 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.

To best understand the differences in performance, look at the source codes of the programs and analyse the algorithms.

Make some notes and post them.

If you have friends that have Computer Science Degrees, maybe they could help.

Serve chips, beer/soda a few big screens and have a nice geek session. Hope this helps.

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.

1 Like

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.

I only have the integrated GPU of the i5 processor.
What else does it say in Shotcut: Use handware encoder?

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 results are given below:

+------+-------------+-------------------------------------------------+	 
|      |  CapCut     |                  SHOTCUT                        |
+------+-------------+-------------------------------------------------+	 
|      |             | Hardware    | Software    | Hardware | Software |  
|      | Av Bit-rate | Av Bit-rate | Av Bit-rate | Qual=55% | Qual=55% |
+------+-------------+-------------+-------------+----------+----------+	 
| CPU  | 65%         | 85%         | 100%        | 100%     | 100%     |
| GPU  | 65%         | 12%         |   0%        |  15%     |   0%     |
| Time | 16s         | 47s         |  80s        |  28s     |  70s     | 
| Size | 92MB        | 92MB        |  92MB       | 28MB     | 26MB     | 
+------+-------------+-------------+-------------+----------+----------+	 

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!

4 Likes

Many thanks for the detailed comparison.

You’re welcome. When I find a bit more time I’ll do a comparison with one or more filters applied.

That requires a lot of CPU in Shotcut, and turning on Export > Video > Parallel processing usually helps.

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.

1 Like

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.

For me:
movflags=+faststart
preset=fast
vminrate=5M

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.

+------+-------------+-----------------------------------------------+	 
|      |  CapCut     |            SHOTCUT (default profile)          |
+------+-------------+-----------------------------------------------+	 
|      |             | Hardware   | Software   | Hardware | Software |  
|      | Av Bit-rate | Q=55% noPP | Q=55% noPP | Q=55% PP | Q=55% PP |
+------+-------------+------------+------------+----------+----------+	 
| CPU  | 75%         | 80%        |  95%       |  90%     | 100%     |
| GPU  | 70%         | 17%        |  12%       |  18%     |  15%     |
| Time | 18s         | 210s       |  240       |  180s    | 215s     | 
+------+-------------+------------+------------+----------+----------+	 
4 Likes

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.

Thanks.
This confirms my measurements.

A comparison without filters, on the other hand, would be pointless (for me) because I also need these filters in other editing projects.

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.

Shotcut does have a set of GPU filters called Movit (GitHub - ddennedy/movit: A fork of http://git.sesse.net/movit/ that I use to make automated builds more reliable and from which I can share my changes.), however these sometimes caused instabilities and lots of problems were reported with them that eventually led to these filters being disabled.

If we subtract the time just to export from those times to run the filter AND export you get the time taken by the filter:

  • for CapCut the filter takes 2 seconds to execute,
  • for Shotcut it takes 150 seconds!
1 Like

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.

Goes to show that are millions to hundreds of millions of dollars in the Industry for this type of tool. Especially if they are fast and time saving.

Time is money and all that.

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:

Windows 10
Inlel Core i5-8300h
32 gb RAM
GeForce 1050ti 4gb

Render time (1 video track, no fx)
CapCut - 20s (27,1 mb)
Shotcut - 33s (48,3 mb)

Render time + scale 120%
CapCut - 21s (28,6 mb)
Shotcut - 6m24s (46,7 mb) :woozy_face:

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.