diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index 6d924939bb9bca63d8751e7968f0ea815dfa8635..21dfe25365a7ff4b928f56c68be4024b531ccea3 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -521,7 +521,7 @@ void MediaEncoder::prepareEncoderContext(bool is_video) encoderName = "encoder?"; - encoderCtx_->thread_count = std::thread::hardware_concurrency(); + encoderCtx_->thread_count = std::min(std::thread::hardware_concurrency(), is_video ? 16u : 4u); RING_DBG("[%s] Using %d threads", encoderName, encoderCtx_->thread_count);