> For the complete documentation index, see [llms.txt](https://captivatehelp.newbluelive.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://captivatehelp.newbluelive.com/design-and-customize-graphics/chapter-index-4/picture-in-picture-with-live-video.md).

# Build a picture-in-picture with live video

A picture-in-picture (PiP) shrinks a live camera or feed into a box on screen — for a guest inset, a dual-box interview, or a stats sidebar. In most productions you’d build that on a switcher’s DVE and time it against your graphics by hand. In Captivate you build it **inside the graphic**: a **Live Video Variable** maps a live source onto a design layer, so the video inherits that layer’s position, scale, and animation — including 3D moves. The DVE is part of the design, so a PiP that would normally need a switcher plus careful timing becomes a single animated template you play like any other graphic.

For a full-frame video squeeze driven by zone layouts instead, see [Create a squeeze (squeezeback)](/set-up-your-production/create-a-squeeze.md). This article covers the in-graphic approach, which is the more flexible one for boxes that move, scale, or fly in.

## How it works

A Live Video Variable binds a design layer to a live input. Captivate draws the live video into the layer’s shape every frame and follows the layer’s four corners as it animates — so if the layer flies in, scales up, or rotates in 3D, the video box does exactly the same. You design the motion once; the live feed rides along.

## Build the graphic

1. In Captivate’s playout interface, select a graphic in the Project List and click **Edit Graphic** to open the Designer. (Or drag a design from the Graphics Library to start fresh.)
2. Add the layer that will hold the video — a shape or image layer sized and placed where you want the PiP box. Give it a border or drop shadow if you want the box framed.
3. With the layer selected, click **Properties > Special**.
4. Set **NTX Feature** to **Live Video Variable** and enter a variable name. See [Create live video variables](https://github.com/NewBlueFX/help-docs/tree/gitbook-test/gitbook/design-graphics/variables-and-linked-data/design-graphics/variables-and-linked-data/create-variables-in-graphics.adoc#create-live-video-variables) for the control detail.
5. Animate the layer for the move you want — position, scale, and 3D rotation with keyframes on the Timeline. A common PiP is a box that slides in from the edge and settles; a dual-box pushes two of these to opposite sides.

   **💡 TIP**\
   Keep the box’s shape matching your video’s aspect ratio (16:9) so the live picture isn’t stretched as it scales.
6. Click the green checkmark at the bottom of the Timeline to confirm your changes.

## Assign the live source and play it

1. Back in the playout interface, with the graphic selected, choose the live video source for the variable — the same way you assign any [live video variable](https://github.com/NewBlueFX/help-docs/tree/gitbook-test/gitbook/design-graphics/variables-and-linked-data/design-graphics/variables-and-linked-data/create-variables-in-graphics.adoc#create-live-video-variables).
2. Play the graphic. The live video fills the box and animates with the design — flying in, scaling, and moving in 3D exactly as you keyframed it.

To change which camera or feed appears, pick a different source for the variable; the animation and framing stay the same.

## A dual-box example

* Design two video layers — one on each side of the frame — and make each a Live Video Variable with its own name.
* Animate both to slide in from their respective edges.
* In playout, assign a different live source to each variable.

Playing the graphic brings both feeds in together as a matched dual-box, with no switcher DVE to set up.

## Related

* [Create variables in graphics](/design-and-customize-graphics/chapter-index-4/create-variables-in-graphics.md) — the Live Video Variable control and the other variable types.
* [Create a squeeze (squeezeback)](/set-up-your-production/create-a-squeeze.md) — the zone-layout approach, for shrinking the full program into part of the screen.
* [Live video inputs](/set-up-your-production/chapter-index-2.md) — adding the cameras and feeds a live video variable can show.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://captivatehelp.newbluelive.com/design-and-customize-graphics/chapter-index-4/picture-in-picture-with-live-video.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
