No Video when using hardware encoder

Correct. In general CPU encoding is focused on quality whereas GPU encoding is focused on speed - if you can accept lower quality or higher final bitrate then GPU encoding is for you as it will be faster, if your goal is highest possible quality at lowest possible bitrate then CPU based encoding will be your best option at the cost of increased encoding time.