I was doing a project using WebRTC and in particular with the PeerJS library.
It worked fine on desktop but on iOS Safari, all I was seeing for the video streams was a black box.
Even for the local stream.
What I had to do was to add the playsinline attribute to the video tags for both the local and remote streams:
<video id="local" autoplay playsinline muted></video>
<video id="remote" autoplay playsinline></video>
(note: it’s playsInline in JSX)