High CPU usage can be caused by
1. Trial license and audio transcoding.
Because it inserts audio watermarks to the streams.
2. Old version.
We did some optimizations in latest versions of server.
3. Transcoding.
If you pass width and height params on playback
Example
Code:
session.createStream({name:'stream1', constraints:{audio:true,video:{width:640,height:480}}}).play();
4. Transcoding
When you use different codecs on publishing and playback ends.
For example: publishing WebRTC VP8, playback H.264 MSE.
5. Decoding.
WCS enables video decoding by default for all streams.
You can disable this feature to improve CPU usage:
Code:
streaming_video_decoder_fast_start=false
6. Wrong measuring.
Could you provide screenshot of 'top' command output?
Generally you see percent per logical CPU, not per server.
So if you have 1 CPU, 4 cores with hyper-threading, you have 4 x 2 = 8 logical CPU.
Therefore you see load 30% of 1 logical CPU.
Therefore 0.3 / 8 = 0.0375 = 4% of physical CPU.