Plateline Pro: Batch Camera Setup from Plates
add-on
Point Blender at a production folder and get one camera per shot: background set, marker bound, focal length read from the EXR header, and JPG proxies so 4K plates actually scrub.
Plateline Pro for Blender
Plateline Pro turns a folder of plates into a laid-out timeline of cameras. Point it at a production tree and it finds every movie and every image sequence inside, builds a camera for each, sets the background image, lays them end to end, and binds a marker to each one.
Built for Layout Artists, Matchmovers and Animators. Plateline Light is the free edition and covers the import itself.
Import a folder, not a file listBoth of the layouts you actually have on disk just work: one shot per folder, or everything side by side. Format and version folders are skipped when naming, so SH010/v003/exr/ gives you a camera called SH010, not exr.
- Shots are ordered naturally, so Shot_2 comes before Shot_10.
- Folders named Proxy are ignored, so re-scanning never re-imports your own proxies.
- Paste a path instead of browsing. Explorer's Copy as path output works, and several paths separated by ; import in one go.
- Plates already named the production way (0010_0010, 0010_0020) are grouped by the codes in their names, even in one flat folder.
Select all 500 frames of five sequences and you get five cameras, not five hundred. Any frame anchors to the first with the full duration, so it does not matter which one you click.
- 0010_0010.0001.exr becomes a camera called 0010_0010.
- SH010.png, SH020.png, SH030.png stay three separate shots.
- Awkward names survive: spaces, non-ASCII and CJK characters, &, +, #, brackets, dots as separators, inconsistent zero padding, and sequences starting at any number.
@@@@_#### gives 0010_0010, 0010_0020, rolling over to 0020_0010 at the next sequence, with separate start and step for each. The panel previews the names before you import, so you read the result instead of decoding the pattern.
Use any plates you have. The values quoted below are examples from one shot, so you can see the shape of the result; with your own footage the numbers will be yours.
1. Open the panel. In the 3D viewport press N and pick the Plateline tab.
2. Set the naming. Mode Pattern, pattern @@@@_####, shot and sequence numbering starting at 10 with a step of 10. Before importing anything, the panel shows the names it is about to produce, rolling over to the next sequence where your folders or file names say so. If that preview is not what you expect, nothing has been touched yet and you can change the pattern.
3. Point it at a folder. Click Folder and pick a tree such as PLATES/<shot>/v003/exr/. Every movie and image sequence inside is found. Version and format folders are skipped when naming, and Proxy folders are ignored entirely.
4. Look at what arrived. One camera per shot, not one per frame: fifty numbered files of one sequence give you a single camera, not fifty. Each carries its plate as a background image, sits on its own stretch of the timeline, and has a marker bound to it. The scene end frame moves to match the total length.
5. Scrub. The view cuts from camera to camera at the markers, so whatever frame you are on, you are looking through the right camera for that shot.
6. Check the lens. Select a camera and open Lens Metadata. It reports what it found and where it read it, for example 32.0 mm, sensor 24.89 mm from EXR pinholeFocalLength. Underneath, From the plate header lists whatever else the file carried: ISO, shutter, aperture, white balance, frame rate, reel name, timecode.
If your plates carry no lens data, the panel says so and the camera keeps the fallback value you set in the panel. That is the intended result rather than a failure: nothing is invented, and a zoom lens is reported but never applied.
7. Make 4K playable. Select every camera, set Source to 25% (JPG Proxy) and click Generate Proxies. Same timeline, now smooth. Switch back to Original and the plates are untouched, with the proxies sitting beside them.
Steps 1, 2, 4 and 5 work in the free Light edition too, picking the plates with Files instead. The Folder scan in step 3, the lens in step 6 and the proxies in step 7 are Pro.
Want the exact numbers above to come out exactly? Ask for the test plates mentioned further down: three folders with the expected camera count and metadata values written out, so every claim here can be checked rather than taken on trust.
Set Lens to From Metadata and every camera takes its focal length straight out of the file.
- OpenEXR: pinholeFocalLength first, because the spec defines it as the pinhole to image plane distance, which is exactly what a CG camera's focal length means. Then the other standard and vendor spellings.
- Sensor width too, so the field of view is right. The same 35 mm lens frames very differently on Super 35 than on full frame.
- JPEG and TIFF via EXIF, including 35 mm equivalent focal lengths.
- Nothing is applied silently. Findings are graded, and a zoom lens is reported, never guessed at.
Productions pack those headers with far more than the lens, so Plateline now reads the rest of it too. The right-hand column shows how each value is rendered, using one shot as an example; your plates will carry their own:
| Custom property | Read from | Shown as |
|---|---|---|
| plateline_iso | isoSpeed | 800 |
| plateline_exposure | expTime | 1/48 s |
| plateline_aperture | aperture, fNumber, tStop | f/2.8 |
| plateline_shutter_angle | shutterAngle | 172.8 deg |
| plateline_white_balance | whiteBalance | 5600 K |
| plateline_timecode | timeCode | 10:00:00:00 |
| plateline_fps | framesPerSecond | 24 fps |
| plateline_camera_make, _model, _serial | cameraMake, cameraModel | ARRI, ALEXA 35 |
| plateline_reel | reelName | A001R2EC |
| plateline_capture_date, plateline_neutral, plateline_owner | capDate, adoptedNeutral, owner | text |
Each lands on the camera as a custom property, so you can read it, drive from it, or export it:
cam = bpy.data.cameras["0010_0010"] cam["plateline_timecode"] # '10:00:00:00' cam["plateline_iso"] # 800.0Numbers stay numbers, with the unit kept in the panel rather than in the value, so plateline_exposure is 0.0208 seconds and a driver can read it directly. None of it is applied to the camera. Unlike the focal length, these values change nothing about how the shot renders, so they are recorded rather than acted on.
4K EXR plates do not scrub well in Blender. Generate JPG proxies at 100, 75, 50 or 25 percent and flip the selected cameras between resolutions from one dropdown.
- Nothing to install. Proxies are built with Blender's own video sequencer. No external encoder, no setup, no preferences to configure.
- The panel shows which version is on screen and which resolutions already exist on disk.
- Progress you can stop: a progress bar while it works, Esc to cancel.
- Non-destructive: proxies live in a Proxy folder beside the plate. Your source files are never touched.
- Placement modes: append after the last clip, start at the playhead, or at a fixed frame, with optional handle frames.
- Cameras land in their own collection, reused across imports.
- A timeline marker bound to every camera, so scrubbing cuts between shots.
- Reorder Selected re-stacks cameras and moves their markers with them.
Requires Blender 4.5 LTS or newer. Verified on 4.5 LTS, 5.0, 5.2.1 LTS and 5.3 alpha. Windows, macOS and Linux. No external dependencies, nothing bundled and nothing downloaded at runtime.
- Download plateline_pro-3.1.0.zip.
- Drag the zip into the Blender window, or use Edit > Preferences > Add-ons > Install from Disk.
- Enable Plateline Pro.
Light and Pro share the same panel, so install one at a time.
Trying it without production platesThis works on footage you are unlikely to have lying around, so there is a 20 MB set of test plates: three folders covering folder import, deliberately awful file naming, and an EXR sequence carrying a full production header (32 mm Zeiss, ISO 800, f/2.8, 5600 K, reel A001R2EC, running timecode). Each folder states the camera count and the exact values to expect, so it can be checked rather than taken on trust. Ask through the message button and I will send it over.
Good to know- Version numbers at the end of a file name look like frame numbers, so plate_0001_v1, _v2, _v3 read as one three-frame sequence. Put the version before the frame number, or in its own folder.
- Lens and shot metadata are read from image headers, not from movie containers.
GPL v3 or later.
Demo plates shown in the images are frames from Big Buck Bunny, copyright 2008 Blender Foundation, used under CC BY 3.0.