wide-shoe-67933
02/26/2026, 12:52 PMvideo-processor.js to implement virtual backgrounds. I am trying to ensure that participant video tracks and background images are mirrored correctly.
At the moment, local users are correctly shown a mirrored view of themselves, but when a virtual background is applied, the background is also mirrored, which is not the intended behavior. If I pre-mirror the background image to compensate, remote participants then see an incorrectly mirrored result.
How can I configure the video processing so that the local self-view is mirrored while the background and the video sent to other participants remain correctly oriented? I am using React.refined-appointment-81829
02/26/2026, 3:29 PMwide-shoe-67933
02/26/2026, 3:31 PMrefined-appointment-81829
02/26/2026, 3:32 PMrefined-appointment-81829
02/26/2026, 3:33 PMrefined-appointment-81829
02/26/2026, 3:33 PM// Local self-view (mirrored for display)
<div style={{ transform: 'scaleX(-1)' }}>
<VideoTrack trackRef={localTrackRef} mirror={false} />
</div>
// Remote views (no mirroring)
<VideoTrack trackRef={remoteTrackRef} mirror={false} />wide-shoe-67933
02/26/2026, 3:34 PMwide-shoe-67933
02/26/2026, 3:35 PMrefined-appointment-81829
02/26/2026, 3:36 PMrefined-appointment-81829
02/26/2026, 3:36 PMwide-shoe-67933
02/26/2026, 3:36 PMrefined-appointment-81829
02/26/2026, 3:37 PMrefined-appointment-81829
02/26/2026, 3:37 PMwide-shoe-67933
02/26/2026, 3:38 PMrefined-appointment-81829
02/26/2026, 3:38 PMrefined-appointment-81829
02/26/2026, 3:39 PMsuper odd or not. But it is the normwide-shoe-67933
02/26/2026, 3:39 PMrefined-appointment-81829
02/26/2026, 3:40 PMwide-shoe-67933
02/26/2026, 3:41 PMrefined-appointment-81829
02/26/2026, 3:41 PMwide-shoe-67933
02/26/2026, 3:41 PMwide-shoe-67933
02/26/2026, 3:41 PMrefined-appointment-81829
02/26/2026, 3:41 PMwide-shoe-67933
02/26/2026, 3:42 PMwide-shoe-67933
02/26/2026, 3:43 PMrefined-appointment-81829
02/26/2026, 3:44 PMwide-shoe-67933
02/26/2026, 3:45 PMrefined-appointment-81829
02/26/2026, 3:48 PMrefined-appointment-81829
02/26/2026, 3:49 PMrefined-appointment-81829
02/26/2026, 3:50 PMwide-shoe-67933
02/26/2026, 3:52 PMwide-shoe-67933
02/26/2026, 3:52 PMrefined-appointment-81829
02/26/2026, 3:53 PMrefined-appointment-81829
02/26/2026, 3:53 PMwide-shoe-67933
02/26/2026, 3:54 PMwide-shoe-67933
02/26/2026, 3:55 PMrefined-appointment-81829
02/26/2026, 3:55 PMwide-shoe-67933
02/26/2026, 3:55 PMrefined-appointment-81829
02/26/2026, 3:55 PMrefined-appointment-81829
02/26/2026, 3:56 PMwide-shoe-67933
02/26/2026, 3:56 PMwide-shoe-67933
02/26/2026, 3:56 PMrefined-appointment-81829
02/26/2026, 3:56 PMrefined-appointment-81829
02/26/2026, 3:57 PMwide-shoe-67933
02/26/2026, 3:57 PMrefined-appointment-81829
02/26/2026, 3:57 PMwide-shoe-67933
02/26/2026, 3:58 PMwide-shoe-67933
02/26/2026, 3:59 PMwide-shoe-67933
02/26/2026, 3:59 PMadventurous-judge-65460
02/26/2026, 7:48 PMwide-shoe-67933
02/26/2026, 7:50 PM