Any way I can stream 640x480 video very smoothly?

I'm using a webcam that can output motion jpeg or yuyv442, I was using
mjpg-streamer to streaming motion jpeg with a very smooth video on the a
html page. But the problem is, motion jpeg need a lot bandwidth the frame
rate drop a lot when using the mobile network on my phone.

Is there any way to have a smaller streaming size and take less CPU
(because I'm planning to have 4 video at the same time)?