Video Stabilization

Understanding Video Stabilization and recording stabilized Videos

Video Stabilization applies software- and sometimes hardware-processing to stabilize Frames in the Camera.

Enable Video Stabilization

To enable Video Stabilization, pass a { videoStabilizationMode: ... } constraint using your desired StabilizationMode:

function App() {
  return (
    <Camera
      style={StyleSheet.absoluteFill}
      isActive={true}
      device="back"
      constraints={[
        { videoStabilizationMode: 'cinematic' }
      ]}
    />
  )
}
function App() {
  const camera = useCamera({
    isActive: true,
    device: 'back',
    constraints: [
      { videoStabilizationMode: 'cinematic' }
    ]
  })
}
const device = ...
const session = ...

const controllers = await session.configure([
  {
    input: device,
    outputs: [],
    constraints: [
      { videoStabilizationMode: 'cinematic' }
    ]
  }
], {})

Latency

Software-based StabilizationModes keep a queue of Frames in-memory to adjust stabilization, which introduces latency in the Camera pipeline. The side-effect of this is that Frames arrive a few milliseconds/seconds later than when they were captured.

On this page