12V, so you can get away using 2 P channel FETs and 2 N channel ones, 4 resistors and 2 cheap NPN transistors. P channels have to be non logic level ones, with the resistor between 12V and gate, with the NPN pulling it to 0V to turn on, base current being limited by other resistor, or just use a logic level low power mosfet instead, you really do not care how high on resistance is, just has to pull below threshold of the pfet. Low side logic level n power fet, and if you are slow enough that body diodes are usable, which will be this case as the switching speeds will be far from stellar, you will be fine and have some EMI reduction at the expense of increase switching loss.
Can do with 4 power devices, 2 resistors and 2 jelybean logic level fets, you just need 4 output pins available, and need to make sure your firmware does the dead time control or you will have very dead mosfets in no time. For protection add 2 gate resistors and 15V zener clamps to the p channel devices, all cheap parts.
For bipolar you can do the same, just have to make the drive a little stiffer and have extra resistors in the base for current setting, and accept that the NPN devices will be darlingtons with the 2V drop, though the PNP can just be driven with 200-400mA depending on how good the PNP transistors are gain wise at the current of interest. 5A you need a gain of 50, so you might already be needing to run at 400mA just to saturate them. Mosfets are so much lower power to drive, though the bipolar will survive you going oops a bit better.