Slower with Ubuntu vs. Windows (much slower)


#1

Using latest release, the Ubuntu version takes about 5 hours to create (“export”) a webm file of 11 minutes. The Windows version takes about 2 hours. Same computer = same hardware. Same problem for MP4.

It has been like this for about a year. Before that, Ubuntu and Windows versions took “the same time”.

Version of Shotcut does not matter, all recent shows this. Older ones take the same time as Windows versions. Version of Ubuntu or Windows does not matter. My computers only have Intel cpu, but i7 or Xeon makes no difference. Tested in at least 3 different computers, so not caused by “peculiar” hardware.

Most likely a compile error, using some unsuitable libraries.

Seriousity: Very annoying, must reboot to Windows to produce video. I am likely to use another editor.

Best Regards, Jan


#2

This is the first I have heard of this. Is this only for WebM? And are you using one of our builds?


#3

I took at look into this today, but I have not found anything yet.

libvpx is used for WebM, and x264 and x265 are used for MP4. These are the most popular and arguably also the most effective libraries. Looking at the build logs for libvpx for Linux vs. Windows, and they are the same:

|[02:16:48] :| [Step 1/1] LOG: Configuring libvpx|
|---|---|
|[02:16:48] :| [Step 1/1] LOG: About to run command: ./configure --prefix=/root/shotcut/shotcut/Shotcut/Shotcut.app --enable-vp8 --enable-postproc --enable-multithread --enable-runtime-cpu-detect --disable-install-docs --disable-debug-libs --disable-examples --disable-unit-tests --extra-cflags=-std=c99 --enable-shared|
|[02:16:48] :| [Step 1/1]   enabling vp8|
|[02:16:48] :| [Step 1/1]   enabling postproc|
|[02:16:48] :| [Step 1/1]   enabling runtime_cpu_detect|
|[02:16:48] :| [Step 1/1]   disabling install_docs|
|[02:16:48] :| [Step 1/1]   disabling debug_libs|
|[02:16:48] :| [Step 1/1]   disabling examples|
|[02:16:48] :| [Step 1/1]   disabling unit_tests|
|[02:16:48] :| [Step 1/1]   enabling shared|
|[02:16:48] :| [Step 1/1]   enabling vp9_encoder|
|[02:16:48] :| [Step 1/1]   enabling vp9_decoder|
|[02:16:48] :| [Step 1/1] Configuring for target 'x86_64-linux-gcc'|
|[02:16:48] :| [Step 1/1]   enabling x86_64|
|[02:16:48] :| [Step 1/1]   enabling pic|
|[02:16:48] :| [Step 1/1]   enabling mmx|
|[02:16:48] :| [Step 1/1]   enabling sse|
|[02:16:48] :| [Step 1/1]   enabling sse2|
|[02:16:48] :| [Step 1/1]   enabling sse3|
|[02:16:48] :| [Step 1/1]   enabling ssse3|
|[02:16:48] :| [Step 1/1]   enabling sse4_1|
|[02:16:48] :| [Step 1/1]   enabling avx|
|[02:16:48] :| [Step 1/1]   enabling avx2|
|[02:16:48] :| [Step 1/1]   enabling avx512|
|[02:16:49] :| [Step 1/1]   using yasm|
...
|[03:06:08] :| [Step 1/1] LOG: Configuring libvpx|
|---|---|
|[03:06:08] :| [Step 1/1] LOG: About to run command: ./configure --prefix=/root/shotcut/shotcut/Shotcut --enable-vp8 --enable-postproc --enable-multithread --enable-runtime-cpu-detect --disable-install-docs --disable-debug-libs --disable-examples --disable-unit-tests --extra-cflags=-std=c99 --target=x86_64-win64-gcc|
|[03:06:08] :| [Step 1/1]   enabling vp8|
|[03:06:08] :| [Step 1/1]   enabling postproc|
|[03:06:08] :| [Step 1/1]   enabling runtime_cpu_detect|
|[03:06:08] :| [Step 1/1]   disabling install_docs|
|[03:06:08] :| [Step 1/1]   disabling debug_libs|
|[03:06:08] :| [Step 1/1]   disabling examples|
|[03:06:08] :| [Step 1/1]   disabling unit_tests|
|[03:06:08] :| [Step 1/1]   enabling vp9_encoder|
|[03:06:08] :| [Step 1/1]   enabling vp9_decoder|
|[03:06:08] :| [Step 1/1] Configuring for target 'x86_64-win64-gcc'|
|[03:06:08] :| [Step 1/1]   enabling x86_64|
|[03:06:09] :| [Step 1/1]   enabling mmx|
|[03:06:09] :| [Step 1/1]   enabling sse|
|[03:06:09] :| [Step 1/1]   enabling sse2|
|[03:06:09] :| [Step 1/1]   enabling sse3|
|[03:06:09] :| [Step 1/1]   enabling ssse3|
|[03:06:09] :| [Step 1/1]   enabling sse4_1|
|[03:06:09] :| [Step 1/1]   enabling avx|
|[03:06:09] :| [Step 1/1]   enabling avx2|
|[03:06:09] :| [Step 1/1]   enabling avx512|
|[03:06:09] :| [Step 1/1]   using yasm|

I do not have any dual-booting systems at the moment (except macOS/Windows) to perfectly confirm this.

There might be some effect being used that is a bottleneck. It is not clear to me if you made a simple encoding test. I made a simple encoding test of 11 minutes of 1920x1080p at 59.94 fps. On a rather strong Windows system (Intel® Core™ i7-5960X CPU @ 3.00GHz, 3001 Mhz, 8 Core(s), 16 Logical Processor(s)), single pass vp8 WebM took 01:35:34. An x264 MP4 using the Default preset took only 00:18:19 - it is much more optimized. The WebM exports will go much faster if you increase the speed option in the Other tab to 2 or 3, but you lose much quality.

Meanwhile, on my Linux system with (very old i7 920 hyper-threaded quad core at 2.67GHz), the same 11 minute clip took 02:21:13 as vp8 WebM. To me that seems fairly congruent to the machine differences.

I could use some help to identify an effect that is causing your slowdown if you think that is the case.


#4

Ooops, this is much more compicated than I thought. I tested, and with a single-scene 30 sec raw clip I got the “same” export time, using 190228, 171107. 1k or 4k clips, exporting to MP4 or WEBM 1080p result. No “noticeable” differences between Ubuntu or Windows.

So I looked at one of the problems I had. An 12 min 4K timeline, consisiting of many small individual clips. On Ubuntu 190228 Shotcut says (after some thinking) that it will be ready in about 4 hours. Ok, started Shotcut 171107 (same, ubuntu, same hardware), now it looked like it would be ready in about 50 minutes. I did not bother to time it accurately, but it was finished (MP4) in about 50 (say 45-55) minutes. Much less than 4 hours.

Ok, started Windows 7 (same computer, same hardware, I7 something, 16 gb ram). Shotcut 190228 wanted about 4 hours. So I uninstalled 190228, and installed 190127 (Windows 7). Now it claims it will be ready in about 50 minutes! When I write this, 38% is done, 20 min elapsed, and shotcut claims 33 min remaining.

I did actually let one of the 5 hour conversions run overnight, and yes, it does take about 5 hours. The timer estimate is “correct”.

So what is the problem? Now same long time in Windows 7. Long timeline, 12-13 minutes of 4K footage? Many small clips (about 14 pieces)? Note that all Shotcut is downloaded from officual website, Fosshub or Github.

Same effect has been seen on Xeon E5-1620, and other Intel as well. I have no AMD really.

Sometimes all is well, sometimes not. No special configuration, just installing or tar Jxvf to get the start-app. No GPU enabling.

But “old” Shotcut uses similar time using Windows 7 and Ubuntu. Up until 190127 version used short Windows 7 time. MP4 or WEBM does not seem to be the magical thing.

It is replicable to me, on different hardware (all Intel though), i7 and Xeon. I have no Mac, but I have Windows 7 nad Ubuntu. I could (with a lot of effort) do Windows 10 and (say) Fedora, CentOS. But I believe results will be the same.

Any suggestions for further testing?

Best Regards from Jan


#5

Added: No effects. No extras. Just cut-up raw clips. Camera Panasonic Lumix G80 (also known as G85) producing usually 4K mp4 priginals. I can also make clips with an older Lumix, GF5. If that would make a difference…?