Signal does have the capability to have a verification phrase displayed, which is generated from the session key. Reading that off can make the video more difficult to MITM, because then they'd have to morph the audio to match the phrase, and if it's done after the video is setup, morph the video as well. Not impossible, but difficult.
This uses the fact that the client on each side is open source and inspectable, so that each side knows that they sent only the public key that they generated on their own device.
PS: to answer your last sentence, Signal allows you to flag specifically contacts that you managed to verify. Which is technically equivalent to say that you verified that the public key is theirs.
Indeed it is far from straightforward that merely doing a video call suffices to check the keys.
Signal is famously using a special protocol for secure key sharing through the server, which I have not studied.
But as said by another comment, there is no way around verifying explicitly the public key using an independent channel.
Signal also offers to label contacts for which you could verify the authenticity by another way.
Doing a video call with the contact can be a simple way to clear doubts, even if it is not a proper different channel.