video

One Second Montage

Combine photos and videos into an MP4 using one second from each item, with optional looping music and capture-year divider cards.

Local processing
About your filesFiles and content selected in this tool are processed in your browser and are not uploaded to a Browser Kitty backend.
Operation demo See the basic workflow in a short video.

About this tool

One Second Montage is a browser tool that turns a mixed batch of photos and videos into an MP4 using one second from each item. Photos are shown for one second, while videos are lightly analyzed for brightness, visual change, and image detail to select a promising one-second highlight. You can adjust only the videos that need attention instead of editing a full timeline.

Items can be ordered by added time, capture date, filename, or a custom sequence, with landscape 16:9, portrait 9:16, and square 1:1 output. When useful, add one looping built-in or custom music track and one-second year divider cards when the capture year changes. File reading, analysis, rendering, and MP4 creation run in the browser without uploading the selected photos, videos, or music to the app server.

Good for

  • Create a short recap from a mix of travel, family, or growth photos and short videos
  • Turn a large batch into a fast-paced montage using a simple one-item-one-second rule instead of detailed timeline editing
  • Create portrait output for phones, landscape output for computers/TVs, or square output for social sharing from the same materials
  • Separate capture years with simple year cards and optionally save the result with one looping background track

What it can do

Key capabilities available in this tool.

How to use

  1. Add photos and videos together with the file picker or drag and drop.
  2. Check the item count and finished duration, then choose added order, capture-date order, filename order, or a custom sequence.
  3. Review automatically selected recommended one-second video highlights and adjust only the clips whose start position you want to change.
  4. Remove unwanted items. A brief Undo is available after removal.
  5. Choose landscape 16:9, portrait 9:16, or square 1:1, plus whole-item/fill-frame display and standard/high-quality output.
  6. Optionally choose one of two built-in music loops or one custom audio file, adjust volume, and enable capture-year divider cards when useful.
  7. Create the video and preview the generated MP4 in the browser when rendering finishes.
  8. Optionally edit the filename and save the MP4. Later edits keep the existing result until you explicitly confirm that you want to recreate it.

Supported

  • Photo input: JPEG, PNG, and WebP.
  • Video input: MP4 and WebM; MOV/M4V also work when the browser can decode them.
  • Ordering: added order, capture date, filename, or manual reordering. Capture-date logic prefers JPEG capture metadata and MP4/MOV creation metadata, then falls back to lastModified.
  • Output sizes: landscape 16:9 at 1280×720 or 1920×1080; portrait 9:16 at 720×1280 or 1080×1920; square 1:1 at 720×720 or 1080×1080.
  • Music: two built-in original loops or one custom audio file. Custom formats depend on browser decoding and the UI limits custom files to 50 MB. Source-video audio is not used.
  • MP4 creation: requires MediaRecorder MP4 output and canvas.captureStream(); current Chrome and Edge are the primary targets.

Limitations and notes

  • Video input depends on codecs the browser can decode, so a supported file extension alone does not guarantee processing.
  • Highlight selection is a lightweight heuristic based on brightness, visual change, and image detail rather than semantic AI. If no clear candidate is found, the middle second is used.
  • Rendering uses real-time browser recording, so MP4 creation currently takes roughly as long as the finished video.
  • Source-video audio is not included. Background music is one looping track only; multiple tracks and music start-position editing are not supported.
  • Transitions, free-form captions, effects, filters, multiple tracks, and arbitrary per-item durations are outside the current scope.
  • Very large batches, 4K video, or high-quality output can use substantial device memory.

Frequently asked questions

Are my photos, videos, or selected music uploaded to a server?

No. File reading, thumbnails, one-second clip selection, rendering, and MP4 creation run in the browser. The app does not upload selected photos, videos, or music, and its runtime CSP uses connect-src 'none'.

Does AI understand the video content and choose the best second?

No. Selection is a lightweight heuristic using brightness, visual change, and image detail. If no clear candidate appears, the middle second is used, and every video can be adjusted manually.

Is the original audio from source videos included in the finished MP4?

No. Source-video audio is intentionally not used. If you want audio, choose one of the two built-in loops or one custom music file, which repeats to the end of the montage.

Will 100 photos make a video of about 100 seconds?

Yes, when year dividers are off, the basic rule is one second per item. If capture-year dividers are enabled, each inserted year card adds another second.

Offline version and source code

The root one-second-montage.html is a self-contained HTML file that bundles the app and built-in music, processing photos, videos, custom music, and MP4 creation without runtime external connections. Local use still requires browser support for MediaRecorder MP4 output and canvas.captureStream().

View source on GitHub