ffmpeg
is flexible encoder you can tweak it much you like , it's up to encoding algorithm and Size VS Quality battle , I think now days X264 are more efficacy than it was before , the important tweaks with ffmpeg to speedup encoding is -preset
the default is medium
you can use fast
or faster
and watch the quality of your output video . I have live steaming video and I use this command
ffmpeg -loglevel 0 -thread_queue_size 32768 -re -i "http://sorce" -vcodec libx264 -preset fast -break_non_keyframes 1 -profile:v high444 -x264-params "nal-hrd=cbr" -b:v 260k -acodec aac -b:a 32k -map_metadata -1 -s 480x360 -f flv rtmp://localhost/hls/live
That for very low quality video ,
ffmpeg -loglevel 0 -thread_queue_size 32768 -re -i "http://source" -vcodec libx264 -preset fast -break_non_keyframes 1 -b:v 665k -profile:v high444 -x264-params "nal-hrd=cbr" -acodec aac -b:a 32k -map_metadata -1 -s 854x480 -f flv rtmp://localhost/hls/live
you will get better quality and viewable picture when increase -b:v
value .
so it's up to you preferred network you can get much higher video quality with less CPU usage.