FileFortress for Video Creators: Managing Footage Across Clouds

Index, search, dedupe, and archive footage with duration and codec metadata

What You'll Learn
  • How to extract duration, dimensions, and codec from footage using FFmpeg
  • Finding clips fast by media type, length, and resolution across every cloud
  • Spotting duplicate renders and exports that are quietly costing you storage
  • Building an archive plan for finished projects bound for cold storage
  • Saving the searches you run every week so they stay one command away

If you shoot video, your footage rarely lives in one place. The A-roll is on Google Drive, last year's deliverables are in an S3 bucket, the proxies sit on a Backblaze B2 bucket, and the masters are on a local NAS. Each cloud has its own clunky web browser, none of them know how long a clip is, and finding "that 4K interview that ran about six minutes" means opening files one by one.

FileFortress builds a single local, private index across all your remotes. Once your video files carry real metadata - duration, width and height, codec - you can search them the way an editor thinks: by length, by resolution, by format. This guide walks through enriching footage with FFmpeg, searching it precisely, taming duplicate renders, archiving finished projects, and making the whole thing repeatable.

The shape of the workflow is simple: enrich once so your clips carry real metadata, then search, dedupe, and archive against that index as often as you like. The enrichment step is the only one that touches your footage; everything after it runs against the local index, instantly and offline. If you work across several providers, the payoff compounds - one query reaches into Google Drive, OneDrive, S3, Backblaze, and your local drives at the same time, so you stop remembering which cloud a clip is on and just ask for it by what it is.

A note on what this is - and isn't

FileFortress indexes and searches video metadata. It does not play, preview, thumbnail, or transcode your footage. Think of it as a card catalogue for your clips, not a media player. Playback and editing stay in your usual tools; FileFortress tells you which file to open and where it lives.

Prerequisites

Two things should be in place before the searches in this guide return anything useful.

FFmpeg installed and detected

Video metadata comes from FFmpeg (specifically its ffprobe component), which is an external tool you install on your own machine. FileFortress runs it locally; it never ships your footage to a third party. We confirm it is detected below.

A scan of your remotes

Enrichment and search both operate on files that are already in your local index. If you have not scanned the remotes that hold your footage yet, do that first - the index is what makes every later command instant and offline.

FileFortress supports Google Drive, OneDrive, AWS S3, Backblaze B2, and Local storage, so footage on any of them can be enriched and searched the same way.

1. Enrich footage with FFmpeg

Cloud storage APIs are surprisingly unhelpful about video. S3 will happily tell you a file is 4.2 GB and was modified on Tuesday, but it has no idea the clip runs 6 minutes 14 seconds at 3840×2160 in HEVC. That information lives inside the file. To get it into your index, FileFortress downloads each file, runs FFmpeg against it locally, extracts the metadata, and stores duration, dimensions, and codec in your local index. This is the local-tools enrichment pathway - distinct from any metadata a provider hands back during a scan.

Confirm FFmpeg is available

First, ask FileFortress what tools it can see on this device:

# Detect which local tools are installed and usable
filefortress tools detect

If FFmpeg shows up as detected, you are ready. If you installed it somewhere non-standard and detection misses it, point FileFortress at the binary explicitly:

# Configure FFmpeg (auto-detect, or pass a custom path if needed)
filefortress tools configure ffmpeg

Run the tool over your videos

With FFmpeg configured, run it against your footage. The --tools ffmpeg flag keeps this run focused on video metadata, and narrowing by remote and extension keeps it from touching files that have nothing to extract.

# Enrich video files on one remote with FFmpeg
filefortress tools run --remote "Footage S3" --tools ffmpeg --extensions mp4,mov

# Start small: only process the first 25 files
filefortress tools run --remote "Footage S3" --tools ffmpeg --extensions mp4,mov --limit 25
This downloads your files

tools run reads the actual bytes of each file, so it downloads every clip it processes. For multi-gigabyte video on a paid provider, that is real bandwidth and, depending on the provider, real egress cost. FileFortress shows a cost warning before it starts against paid providers.

Use --limit to process a sample first, --concurrent to control how many files run at once (default 3), and --skip-cost-warning only when you are running unattended and already understand the cost.

# Tune throughput and bandwidth: two files at a time
filefortress tools run --remote "Footage S3" --tools ffmpeg --extensions mp4,mov --concurrent 2

# Unattended overnight run on a large library
filefortress tools run --remote "Footage S3" --tools ffmpeg --extensions mp4,mov,mkv \
  --concurrent 2 --skip-cost-warning
Do this once, search forever

Enrichment is a one-time download per file. Once the duration, dimensions, and codec are in your local index, every search that follows is instant and offline - no further downloads, no provider round-trips. For a deeper look at how local tools work, see the Local Tools Guide and the walkthrough of extracting duration from S3 video.

What FFmpeg adds to your index

It helps to know exactly what enrichment puts into the index, because those are the fields you can search on afterwards. For each video file FileFortress processes, FFmpeg reads the embedded stream information and records three things that providers never expose:

Duration

The actual runtime of the clip. This is the single most useful field for an editor - it is how you tell a 12-second sting from a 12-minute interview without opening either, and it powers the --min-duration and --max-duration filters.

Dimensions (width & height)

The pixel resolution of the video stream. This separates 4K masters from 1080p deliverables and downscaled proxies, and it feeds the --min-width and --min-height filters.

Codec

The format the video is encoded in. Knowing whether a clip is H.264, HEVC, or a mezzanine format tells you at a glance whether it is an edit-ready master or a compressed delivery copy - useful context when you are deciding what to keep and what to archive.

Because this metadata lives in your local index rather than in the file's name, it stays accurate even when the filenames are a mess. A clip called MVI_0042.MOV is just as findable as one named interview_4k_final.mov - FileFortress searches the metadata, not the label you forgot to set.

2. Find clips fast

This is where the work pays off. With video metadata in the index, you can search the way you actually think about footage. Start with the media type so you are only looking at video, then layer on the filters that matter for the clip you want.

Filter to video, then by length

The --media-type Videos filter restricts results to video files. Duration filters accept human values like 5m, 90s, or 1h30m, so you never have to convert anything to seconds in your head.

# Every video clip across all remotes
filefortress search --media-type Videos

# Clips between 5 and 10 minutes - good for finding talking-head segments
filefortress search --media-type Videos --min-duration 5m --max-duration 10m

# Short clips under 30 seconds - stings, b-roll, social cuts
filefortress search --media-type Videos --max-duration 30s

# Long-form: anything over an hour, like full event recordings
filefortress search --media-type Videos --min-duration 1h

Filter by resolution

Width and height filters let you separate delivery-grade footage from proxies and downscaled exports. A clip is 4K when it is at least 3840 pixels wide; Full HD starts at 1920×1080.

# 4K and up
filefortress search --media-type Videos --min-width 3840

# At least Full HD
filefortress search --media-type Videos --min-width 1920 --min-height 1080

# 4K clips over five minutes - the classic "find the good interview" query
filefortress search --media-type Videos --min-width 3840 --min-duration 5m

Narrow by remote, format, and size

Combine the video-specific filters with the everyday ones to pinpoint a single project. Restrict to one remote, a couple of container formats, and a size floor to skip the proxies.

# 4K masters on the archive bucket, ProRes-sized and up
filefortress search --media-type Videos --remote "Footage S3" \
  --extensions mov,mp4 --min-width 3840 --size-min 500MB

# Mid-length MP4 deliverables on Google Drive
filefortress search --media-type Videos --remote "Client Drive" \
  --extensions mp4 --min-duration 1m --max-duration 8m
Filter What it does Example
--media-type Restrict to a category of file --media-type Videos
--min-duration Floor on clip length (human values) --min-duration 5m
--max-duration Ceiling on clip length --max-duration 30s
--min-width Minimum pixel width (4K = 3840) --min-width 3840
--min-height Minimum pixel height (1080, 2160) --min-height 1080
--extensions Limit to container formats --extensions mp4,mov
Only enriched clips have duration

Duration and dimension filters only match files that have been enriched with FFmpeg. If a clip you expect is missing from the results, it probably has not been processed yet - run tools run --tools ffmpeg over that remote first. For the full filter catalogue, see the Structured Filters Reference, and for the why-it-matters story, Finding That Video.

3. Tame duplicate renders and exports

Video editing produces copies the way a cutting room floor produces trims. You export a v1, a v2, a "final", a "final-real". You back the same master up to two clouds. You hand a client a deliverable and keep your own copy. Each duplicate is footage you are paying to store more than once, and across a few terabytes of video that adds up quickly.

FileFortress finds duplicates across every remote at once. It groups files that match by name and size, and - for clips that have been hashed - by content, so you get exact matches you can trust rather than guesses.

# Find duplicate files across all your remotes
filefortress find duplicates

# Only show duplicates confirmed by content hash - the safest set to act on
filefortress find duplicates --hash-verified-only

Seeing the duplicates is step one. Deciding which copy to keep and producing a safe, reviewable plan to remove the rest is its own discipline - choosing a keep-strategy, previewing the plan, and executing it with rclone or a script.

Delete deliberately

Never bulk-delete footage straight from a duplicate list. Prefer hash-verified matches, keep the copy on your most reliable remote, and always review the plan before it runs. The full keep-strategy and export workflow is covered in Safely Removing Duplicate Files.

4. Archive finished projects

When a project wraps, its footage stops earning its keep on fast, expensive storage. The masters and source clips are worth keeping - you may need them for a re-edit or a clip licence in two years - but they do not need to sit on standard-tier storage where every gigabyte is billed at the top rate. Cold storage like S3 Glacier exists exactly for this: cheap to hold, slow and costly to retrieve, perfect for footage you rarely touch.

The first move is identifying what to archive. Finished-project footage is usually large, so a size floor is the strongest signal, restricted to the remote and formats that hold your masters. Layer a duration floor when you want only the substantial clips rather than every stray export.

# Large master clips on the archive bucket - prime archive candidates
filefortress search --media-type Videos --size-min 1GB \
  --remote "Footage S3" --extensions mov,mp4,mkv

# Narrow to substantial long-form footage worth keeping cold
filefortress search --media-type Videos --size-min 1GB --min-duration 5m \
  --remote "Footage S3"

You can also use the storage-class filter to see what tier files already sit in, so you do not waste an archive pass on footage that is already cold. Storage classes apply to S3-style remotes.

# Which large clips are still on the hot STANDARD tier?
filefortress search --media-type Videos --size-min 1GB \
  --remote "Footage S3" --storage-class STANDARD

# Confirm what is already archived in Glacier
filefortress search --media-type Videos --remote "Footage S3" --storage-class GLACIER

Once you have the candidate set, the move itself is an rclone job. FileFortress is the brain that decides which files to move; rclone is the muscle that moves them. The cleanest pattern is to export a plan as data and hand it to rclone, which performs the transfer against the provider and sets the destination storage class. The duplicate-removal workflow shows how to turn a FileFortress result into an executable rclone plan - the same export mechanics apply when the destination is cold storage rather than the recycle bin.

FileFortress decides, rclone moves

FileFortress does not move or transcode your footage - it identifies the files and produces a plan you review. rclone executes the transfer and applies the destination storage class (for example, --export-format rclone when exporting from find duplicates, then adapting the commands for a move). See how the export plan is built in Safely Removing Duplicate Files.

5. Make it repeatable

The searches that matter are the ones you run again and again: every 4K clip over five minutes, every large old master on the archive bucket, every short social cut from this quarter. Retyping those filters is friction, and friction is how good habits die. Save them once.

Add --save-query with a name to any search, and FileFortress remembers the filters under that name for reuse.

# Save the "good interview footage" view
filefortress search --media-type Videos --min-width 3840 --min-duration 5m \
  --save-query 4k-clips-over-5min

# Save the archive-candidates view
filefortress search --media-type Videos --size-min 1GB \
  --remote "Footage S3" --save-query archive-candidates

# Save short-form social cuts
filefortress search --media-type Videos --max-duration 30s --extensions mp4 \
  --save-query social-cuts
Build a weekly rhythm

A handful of saved queries becomes a footage dashboard you can re-run any time - what is new, what is large, what should be archived. Saved queries can also be layered and chained into narrower views. The Saved Queries Guide covers naming, snapshots, and chaining in detail.

CLI cheat sheet

The key commands for a video footage workflow, from enrichment through archive, in the order you would run them.

# --- Enrich (one-time per file; downloads bytes) ---
filefortress tools detect
filefortress tools configure ffmpeg
filefortress tools run --remote "Footage S3" --tools ffmpeg --extensions mp4,mov \
  --limit 25 --concurrent 2

# --- Find clips ---
filefortress search --media-type Videos --min-duration 5m --max-duration 10m
filefortress search --media-type Videos --min-width 3840
filefortress search --media-type Videos --min-width 3840 --min-duration 5m \
  --remote "Footage S3" --extensions mp4,mov

# --- Dedupe ---
filefortress find duplicates --hash-verified-only

# --- Archive candidates ---
filefortress search --media-type Videos --size-min 1GB \
  --remote "Footage S3" --storage-class STANDARD

# --- Make it repeatable ---
filefortress search --media-type Videos --min-width 3840 --min-duration 5m \
  --save-query 4k-clips-over-5min
Everything stays local

Your footage index, your saved queries, and the metadata FFmpeg extracts all live on your device. Searching, deduping, and planning an archive never send your file list anywhere - the only time bytes leave a provider is the one-off enrichment download.

Related Guides