Hi,
I have a Rust program that implements: gst-launch-1.0 -e uridecodebin uri=dvb://<channel> name=d ! queue ! x264enc ! mp4mux name=m ! filesink location=<output-path> d. ! queue ! avenc_ac3 ! m. it does the job asked of it and so in that sense is successful. However, there seems to be between 25 to 35 Linux tasks (as reported by htop) with one always being 60% to 80% CPU usage, three or four in the 10% to 20% region and the rest in the 4% to 6% region. This seems like an awful lot of processing power being used on this four core with hyperthreads laptop. Is all that computation actually needed or am I just doing something wrong in the pipeline that means more resources than required are being employed? -- Russel. =========================================== Dr Russel Winder t: +44 20 7585 2200 41 Buckmaster Road m: +44 7770 465 077 London SW11 1EN, UK w: www.russel.org.uk _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (849 bytes) Download Attachment |
Le samedi 19 janvier 2019 à 16:38 +0000, Russel Winder a écrit :
> Hi, > > I have a Rust program that implements: > > gst-launch-1.0 -e uridecodebin uri=dvb://<channel> name=d ! queue ! x264enc ! mp4mux name=m ! filesink location=<output-path> d. ! queue ! avenc_ac3 ! m. > > it does the job asked of it and so in that sense is successful. > > However, there seems to be between 25 to 35 Linux tasks (as reported by htop) > with one always being 60% to 80% CPU usage, three or four in the 10% to 20% > region and the rest in the 4% to 6% region. This seems like an awful lot of > processing power being used on this four core with hyperthreads laptop. Is all > that computation actually needed or am I just doing something wrong in the > pipeline that means more resources than required are being employed? You can greatly reduce this in your application, even though, yes, GStreamer creates a lot of threads. First, you can drop threads in your pipeline by removing queues if they are not strictly needed. Second is to configure each decoder/encoder element that has a thread configuration. Note that the property names are unfortunatly not unitfied, so you'll need a bit of per element knowledge in your applicaiton. By default these element assumes to be the only high load element in the pipeline and will create as many threads as there is CPU threads available. Note that lastly, unconfigured x264enc will a lot of processing power. The default setting is of really high quality, you should consider reconfiguring it for your needs. > > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |