Video Trimmer
Keep a selected time range, preview its boundaries and export a new video.
Describe a scene in a short MP4, rank sampled visual frames, inspect the original, and download a compact JSON report.
Choose MP4 → build a visual index → describe a scene in English → inspect the original → copy or download JSON.
Select one local MP4. Describe what you can see, then inspect the matching moments in the original.
50 MB per file · up to 1920 pixels per side · 20 sampled frames
First use downloads a 484.6 MB public model plus about 22–35 MB of runtime resources. Loading also needs working memory. Recent desktop Chrome is the tested browser; low-memory phones may not work. There is no CPU fallback.
After you click Build visual index, fixed public resources are downloaded from jsDelivr and Hugging Face (including its download CDN). Providers see ordinary connection information such as your IP address. The video and search description remain in your browser. Verified public model parts are cached for reuse; videos and queries are not stored. Cancel clears the video, query and results but retains completed model parts. Browser settings can remove this site’s cached data. No account or paid API is needed.
5 seconds: up to 100 seconds of video; 2 seconds: 40 seconds; 1 second: 20 seconds; 0.5 seconds: 10 seconds. Short events between samples can be missed.
Select a candidate to re-decode and compare source bytes, frame time and PNG bytes. This checks frame identity, not whether your description is true.
Similarity ranks candidates even when the scene is absent. It is not a confidence percentage. Inspect the original before using a match.
JSON with your query, source fingerprint, candidate times, scores and original-frame checks. It contains no images or vectors. Checks describe this browser’s result, not an independently authenticated certificate.
| Setting | Bound |
|---|---|
| Input | One MP4; 50,000,000 bytes; parsed duration at most 120 seconds, also subject to the chosen 20-sample limit. |
| Dimensions | At most 1920 pixels per side and 2,073,600 pixels total. |
| Decoded images | At most 20 sampled frames; 2,000,000 bytes per PNG and 24,000,000 bytes total. No partial index is accepted. |
| Text query | 1–200 UTF-16 units; a 256 model-input-unit, single-chunk limit is checked after inference. |
| Model | EmbeddingGemma 2 740M LiteRT-LM; fixed public revision, 484,622,336 bytes. Downloaded parts and the full model are fingerprint checked. |
| Deadlines | Timing-parser loading: 15 seconds. After it is ready, 4 seconds per timing/native-frame wait; 360 seconds engine preparation; 120 seconds frame indexing; 15 seconds query. These are operation limits, not a total startup-time guarantee. |
| Export | JSON up to 100,000 bytes, with at most 5 candidate frames in this interface. No PNG data or embedding vectors. |
Only one browser-supported MP4 is accepted. MP4 is a container: a codec your browser cannot decode will fail even with a .mp4 extension. Empty, multi-segment or rate-changing edit lists, ambiguous timing and more than 7,200 timing packets are rejected. The original file is unchanged.
A WebGPU adapter and sufficient working memory are required. The tested path is recent desktop Chrome; other browsers and low-memory phones have not been accepted. No Python, NVIDIA-specific installation or CPU fallback is provided. First use downloads 484.6 MB of model data plus about 22–35 MB of runtime resources. The browser also needs memory to assemble and load the model.
No video or query is uploaded. Clicking Build visual index starts ordinary connections to jsDelivr and Hugging Face, including its download CDN, for fixed public resources. Providers receive normal connection information such as your IP address. Only verified public model parts are cached; files and queries remain in page memory. Clear, Cancel or leaving the page releases those inputs and results. Completed model parts remain for reuse; browser site-data settings can remove them.
It ranks sampled visual frames against an English description. Use the candidate times to inspect your original video. It does not search speech, identify every event, or guarantee that the description is present.
Start with 5 seconds for up to 100 seconds of video. Use 2 seconds for at most 40 seconds, 1 second for 20 seconds, or 0.5 seconds for 10 seconds. Denser sampling can catch shorter changes, but anything between samples can still be missed.
No. Similarity ranks the closest frames, even when every frame is a poor match. The original-frame check proves only that this browser re-decoded the same source frame; you still need to inspect its content.
Check the file/codec, 50 MB and pixel limits, and the 20-sample plan. Use a recent desktop Chrome with WebGPU and enough free memory/storage. Resource download or cache errors need an explicit retry; there is no CPU or upload fallback.
No. Video decoding, embeddings, ranking and source checks run in your browser. Public model/runtime downloads go to the named providers, which receive normal connection information. Only those public model parts are cached; your file and query are not saved.