Slow Rendering of Timeline

Hi Everyone! I started using shotcut a few days ago and I have the problem that rendering takes forever. I rendered a 41 minute video in a total of 1 hour and 52 minutes. I tried with the 1080p h264 main profile using libx264 as encoder, I tried different containers, different codecs, but what struck me most is that the h264_nvenc encoder took as long as the libx264 encoder. Any idea how to fix that? Is there a way I can do the whole thing in commandline, including telling what encoders to use?

Sounds reasonable, what were you expecting?

With nvenc and ffmpeg, I render the video in less then 10 minutes. With ffmpeg and libx264, I need about 40.

Are you just transcoding or are you editing and adding filters?

Its worth mentioning that nvenc is an encoder that uses the GPU on the graphics card not the CPU. GPUs are massive parrallel processors capable of processing graphics in a fraction of the time as the same algorithm on a CPU. Using h264_nvenc will only affect the the library used to encode frames into the output video file. Decoding source video files into frames and applying affects those frames may still be performed on the CPU.

When I’ve discussed this elsewhere on other forums for other products (including lightworks) the reasoning given was that entirely GPU based systems are generally propriety, non-portable and hardware dependent (isn’t nvenc only for nvidia cards?). I can’t speak for MLT and shotcut but whatever the reason exporting is CPU bound. There are features which use the GPU if you switch them on, but there’s still a lot of CPU work.

For simple transcoding you can find ways to do this entirely on the GPU. I believe you’ve found one with ffmpeg and nvenc. But I’m not aware of an NLE which is entirely GPU based for exporting. They’re simply not designed that way at the moment.

So in short, your processing times sound about right, and I don’t believe you’re going to do much better with alternatives to shotcut if you want it as an editor and not just a transcoder.

Shotcut exports are cpu dependent for portability as far as i’m aware (read what @couling for more details) I’ve done some testing using a benchmark that @nwgat made and you can see some examples of 4k export times here, I usually run exports on the T7600(it’s a dual xeon workstation) for my own projects.

Ah! Thank you for the explanation. That does make sense!