New to Shotcut. Lag in preview and hours to extract video

Dear all,

I am new to Shotcut and video editing in general. I found Shotcut incredibly user friendly, however, I have two issues.
The first one is that there quite a lag in the video preview, this is not a big problem even if it stays like it is.
The second issue is that it takes a very long time to export the video (7 hours for a 20 minutes video), and this is quite a problem.

I have a Dell Inspiron 5570 laptop with CPU: Intel Core i5-8250U CPU @ 1.60Ghz, RAM: 8GB DDR4, 2400 MHz, GPU Intel UHD Graphics 620.

I record videos mainly with my GoPro 8 hero black in 1080p, 2.4k and 4k and I use it for work (surgical videos) and personal stuff (motorbike, outdoor …).

When I bought the laptop I wasn’t planning to use it for video eating, so I appreciate it may not be a good machine for this. But I was wondering if I could achieve to edit good quality video without waiting hours for the video to be extracted.

Thank you in advance for your help.

Mario

Try switching on parallel processing on export. It is switched off by default with Shotcut 20.04

Thanks Elusien. But the parallel processing box is already ticked.

There are actually cases where parallel processing can make the export go slower. See here for an explanation.

Even after 7 hours the export would block at 99% and it would not complete.
I had a look on internet and after following some instructions I managed to get the video exported.
I recorded the videos with the GoPro hero 8 recording at 2.7K resolution and some of the videos are 40Gb, I believe this is one of the problems.
I decreased the quality to 85% to be able to export. However, the quality of the final video is very much lower than the original one.
This is the video I have uploaded on youtube: https://www.youtube.com/watch?v=yNSM94XzBfE

Do you have any suggestion on how to keep the quality good and be able to export the video?

Thank you

Mario

Have you used Preview Scaling to see if it helps reduce the lag?

Using the Default and YouTube presets, at the end it has must rewrite the file (see movflags=+faststart in Export > Other) to reorganize its contents to make it more suitable for streaming (allows YouTube to start processing before upload is complete or for hosting on your own web server). This can make it appear to be stuck. I think your computer is rather slow for the task of video editing. Not only the CPU speed but also the hard drive, and if you run low on memory, and it starts paging memory to the hard drive thereby exacerbating the problems. Given your description, and that fact that your YouTube max quality is 1080p, I expect your meager CPU was very heavily burdened not only with compression but also down-scaling your 2.4K and 4K footage.

Thanks, This helps quite a bit.

image

Do you have any advice/solution?

Thank you

Is it normal that if I made a 45 seconds video out of a 6 minutes video of 3.7Gb, the 45 seconds video is 6Gb?

Definitely not normal for the YouTube preset. Which export preset did you use?

image

image

Try setting the GOP to 249 at most. The H.264 spec has a max of 250, so setting it to 300 may be considered illegal and maybe it defaults to something catastrophic like 1. The quality setting also seems a little high, but not enough to create a 6 GB file. Start with changes to GOP and see what happens. Also check the export log for errors or illegal values that defaulted to something else.

I have tried changing the GOP to 249, now the file is 5.87 GB (slighter lighter, but still very large for a 45 sec video). This is the export log:

plugin_mgr_get_object_file_plugins: error opening shared object file ‘C:\Program Files\Shotcut\lib\ladspa/AUTHORS’: “C:\Program Files\Shotcut\lib\ladspa\AUTHORS”: The specified module could not be found.

plugin_mgr_get_object_file_plugins: error opening shared object file ‘C:\Program Files\Shotcut\lib\ladspa/COPYING’: “C:\Program Files\Shotcut\lib\ladspa\COPYING”: The specified module could not be found.

plugin_mgr_get_object_file_plugins: error opening shared object file ‘C:\Program Files\Shotcut\lib\ladspa/readme.txt’: “C:\Program Files\Shotcut\lib\ladspa\readme.txt”:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000005499e80] Using non-standard frame rate 59/1

[h264 @ 00000000055d6dc0] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000055d8bc0] Using non-standard frame rate 59/1

[h264 @ 00000000099bb4c0] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000009a707c0] Using non-standard frame rate 59/1

[mov,mp4,m4a,3gp,3g2,mj2 @ 0000000009a707c0] Value 1.000000 for parameter ‘seekable’ out of range [-1 - 0]

[h264 @ 00000000096f1c40] Reinit context to 2704x1520, pix_fmt: yuvj420p

[producer avformat] audio: total_streams 1 max_stream 1 total_channels 2 max_channels 2

[AVIOContext @ 0000000004a3eb40] Statistics: 1417969 bytes read, 4 seeks

[AVIOContext @ 00000000099bee80] Statistics: 1417969 bytes read, 4 seeks

[AVIOContext @ 0000000004a3ec80] Statistics: 1417969 bytes read, 4 seeks

[h264_qsv @ 00000000096f29c0] Initialized an internal MFX session using hardware accelerated implementation

[h264_qsv @ 00000000096f29c0] Using the constant quantization parameter (CQP) ratecontrol method

[h264_qsv @ 00000000096f29c0] profile: high; level: 52

[h264_qsv @ 00000000096f29c0] GopPicSize: 249; GopRefDist: 4; GopOptFlag: closed ; IdrInterval: 0

[h264_qsv @ 00000000096f29c0] TargetUsage: 5; RateControlMethod: CQP

[h264_qsv @ 00000000096f29c0] QPI: 4; QPP: 6; QPB: 8

[h264_qsv @ 00000000096f29c0] NumSlice: 1; NumRefFrame: 3

[h264_qsv @ 00000000096f29c0] RateDistortionOpt: OFF

[h264_qsv @ 00000000096f29c0] RecoveryPointSEI: OFF IntRefType: 0; IntRefCycleSize: 0; IntRefQPDelta: 0

[h264_qsv @ 00000000096f29c0] MaxFrameSize: 0; MaxSliceSize: 0;

[h264_qsv @ 00000000096f29c0] BitrateLimit: ON; MBBRC: OFF; ExtBRC: OFF

[h264_qsv @ 00000000096f29c0] Trellis: auto

[h264_qsv @ 00000000096f29c0] VDENC: OFF

[h264_qsv @ 00000000096f29c0] RepeatPPS: OFF; NumMbPerSlice: 0; LookAheadDS: 2x

[h264_qsv @ 00000000096f29c0] AdaptiveI: OFF; AdaptiveB: OFF; BRefType: pyramid

[h264_qsv @ 00000000096f29c0] MinQPI: 0; MaxQPI: 0; MinQPP: 0; MaxQPP: 0; MinQPB: 0; MaxQPB: 0

[h264_qsv @ 00000000096f29c0] Entropy coding: CABAC; MaxDecFrameBuffering: 3

[h264_qsv @ 00000000096f29c0] NalHrdConformance: OFF; SingleSeiNalUnit: ON; VuiVclHrdParameters: OFF VuiNalHrdParameters: OFF

[h264_qsv @ 00000000096f29c0] FrameRateExtD: 1; FrameRateExtN: 60

[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000a05f880] Using non-standard frame rate 59/1

[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000a05f880] Value 1.000000 for parameter ‘seekable’ out of range [-1 - 0]

[h264 @ 00000000096f1780] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 000000000b065040] Using non-standard frame rate 59/1

[h264 @ 00000000055cfe00] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000055d6bc0] Using non-standard frame rate 59/1

[mov,mp4,m4a,3gp,3g2,mj2 @ 00000000055d6bc0] Value 1.000000 for parameter ‘seekable’ out of range [-1 - 0]

[h264 @ 00000000055cf940] Reinit context to 2704x1520, pix_fmt: yuvj420p

[AVIOContext @ 00000000099bbb40] Statistics: 1417969 bytes read, 4 seeks

[producer avformat] D:/OneDrive - University of Glasgow/videos/Motorbike 31.05.2020/GH030113.MP4

checking VFR: pkt.duration 1001

[h264 @ 000000000a117940] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mp4 @ 0000000004a3e740] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.

[mp4 @ 0000000004a3e740] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.

[h264 @ 000000000a117940] Reinit context to 2704x1520, pix_fmt: yuvj420p

[mp4 @ 0000000004a3e740] Starting second pass: moving the moov atom to the beginning of the file

[AVIOContext @ 000000003bec0c40] Statistics: 6309154228 bytes read, 0 seeks

[aac @ 00000000096f1300] Qavg: 63219.254

[AVIOContext @ 00000000096f1140] Statistics: 4 seeks, 48139 writeouts

Completed successfully in 00:07:06

Nothing looks terribly out of place in the log.

For comparison sake, try turning off hardware encoding and using Codec=libx264 and Quality=68% and GOP=249. Leave everything else like the screenshots. That will at least be a known quantity for file size. I have a hunch that hardware encoding is inflating the file a lot.

Austi thank you for all your help. I have followed your instructions. The file is now 1.10 GB. Do you think this is the best I can achieve. This is just a test, but when I work on videos of 20 - 30 minutes they can be over 100 Gb. It takes over 12 hours to upload them on Youtube.

Thank you again

It depends on your goals.

If you’re targeting the highest quality that the human eye can detect, then the main thing left to change is B-frames from 3 to 8, and then it is what it is.

However, if this footage came from a GoPro, then these settings are able to retain higher quality than a GoPro is able to produce in the first place, so there would be some waste happening. The Quality could be changed to somewhere between 50-60% and look pretty much the same but at smaller file sizes. This would require experimentation to see what your preferences are. Keep B-frames at 8 for this.

But in the end… this is 4K60 video being exported. It’s gonna hurt. :slight_smile:

Thanks @Austin, I managed to get the exporting time down to 2h11m.
Is is so slow because of the low RAM (8Gb) or because of the GPU?
Cheers

Also can someone please explain me how a 2 hour good quality movie can be 1 GB and if I made a 5 minute video it is 2.4 GB?
Thank you