diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp
index a82613368873541a5f64ad98143e19fbcf06c30c..dd9b059897b69cf25836d4a4d9618e4c4d994cde 100644
--- a/src/media/media_encoder.cpp
+++ b/src/media/media_encoder.cpp
@@ -495,7 +495,8 @@ MediaEncoder::send(AVPacket& pkt, int streamIdx)
     }
     if (streamIdx < 0)
         streamIdx = currentStreamIdx_;
-    if (streamIdx >= 0 and static_cast<size_t>(streamIdx) < encoders_.size()) {
+    if (streamIdx >= 0 and static_cast<size_t>(streamIdx) < encoders_.size()
+        and static_cast<unsigned int>(streamIdx) < outputCtx_->nb_streams) {
         auto encoderCtx = encoders_[streamIdx];
         pkt.stream_index = streamIdx;
         if (pkt.pts != AV_NOPTS_VALUE)