Discussion summary

A developer created a tool enabling LLMs like Claude to 'see' videos, addressing limitations of existing models. The project has received positive feedback and comparisons to other solutions like Gemini.

What the discussion says

  • Some users find the tool innovative and useful.
  • Concerns about cost and practicality are raised.
  • Comparisons are made with other models like Gemini.
Claude won't accept video files, ChatGPT reads transcripts only.
cortexosmain
I gave Claude a video for a speeding ticket, and it was spot on.
garciasn

Comments

Hacker News

Hi HN! I built this because I was frustrated that no LLM actually "sees" a video — Claude won't accept video files, ChatGPT reads the transcript only, and Gemini samples at a fixed 1fps (missing fast cuts, over-sampling static slides).

claude-real-video takes a URL or local file and:

1. Extracts frames at every scene change (not fixed intervals) + a density floor 2. Deduplicates with a sliding-window pixel-diff algorithm (so A-B-A interview cutaways don't re-send the same shot) 3. Transcribes audio (prefers embedded subtitles, falls back to Whisper) 4. Optionally keeps the full soundtrack for audio-capable models 5. Writes a clean MANIFEST.txt you can drop into any LLM chat

A 10-min presentation goes from ~600 fixed-interval frames to 5-15 meaningful keyframes. 90%+ token savings with better comprehension.

The dedup approach (v0.2.0) uses real pixel difference on 16x16 RGB thumbnails against a sliding window of the last N kept frames — inspired by videostil's pixelmatch, but simpler and self-contained.

`--report` generates a self-contained HTML showing every keep/drop decision with diff percentages, so you can tune the threshold visually.

pip install claude-real-video && crv "https://youtube.com/watch?v=..." --report

MIT licensed, pure Python + ffmpeg. Happy to answer questions!

by cortexosmain

Very cool I have something that does this as well along these lines. I’ll dig into yours over the next few days and contribute where and if I can too, awesome to see!

by ProofHouse

I think a more or less clunky name like 'llm video preprocessor' would be better description? In any case seems like a you came up with a good project idea. I wonder how long until the sota models will just have this kind of functionallity built in.

by AmazingEveryDay

I gave Claude a video provided by a county attorney for a speeding ticket I got. It was spot on in its analysis, even though I don’t like what the video showed.

What does it mean that Claude can’t view video; it did it just fine. Or do you mean tool less?

by garciasn

this is really clever, props

by nxtfari

better off using a cloud solution.

by Jeff9James

Gemini does read videos.

by wesleywt

So Claude is a murderbot?

by speedgeek

So Claude is a murderbot?

by speedgeek

Interesting, but how expensive does it get?

by kraflio

my experience with ffmpeg scene detection is that it's flaky. it works, sometimes, but not reliable by any means

by high_byte

So this work basically by dividing into frames..

by virajk_31

How do you handle things like scrolling quickly in a video?

by fred123123

Curious as to how many tokens are used per second of video.

by nickvec

Based on my tests, a frame rate of 2fps is generally sufficient to resolve video content very well.

by dingody

I think this is much more useful than just LLM related applications. I'd suggest renaming it to not make it seem like it's LLM related.

by BeetleB

Cool idea, but keyframes are not videos. Motion, object permanence, are not things Claude can infer from a set of images. Nice demo though!

by octember

I have been going through this with claude and qwenvl3:8b this week. Both are pretty decent at inferring context and analyzing contact sheets. Finding high visual interest moments with a mixture of coarse and fine keyframes.

by sawjet

I was just thinking about this exact use case yesterday:

And it's for me measuring different charged speeds at different starting battery capacities and different temperatures and I was like well. What if I just had a video camera pointing at the voltage going in and out and then I could see the battery percentage increase and I can have a temperature gun pointed at the phone as well. And I couldn't know what temperature of the phone is as well and it could just figure it all out create charts..

This would make reviewing different charging equipment really easy as long as you really have to do is plug it in and tell other people to do the same thing and take a video of it and beat it to the system.

I might very well give this a try!

by ElijahLynn

It's kind of wild how much we are abandoning basic problem solving skills in favor of just pointing an enormous stack of GPUs at it

by idiotsecant

So I did this yesterday for a video analysis sample with ChatGPT and it took the video, pulled out frames, did difference tests across the frames to look for significant frames to focus on, did image recognition on each frame, and interpolated motion and action between.

So I’m not sure why this says ChatGPT doesn’t “see” video and reads transcripts. Obviously if the video is already labeled that’s the shortcut. But it did an impressive job describing a video I have no inclination it would have in its training data. One could argue it wasn’t “native” and had an agent orchestrator to rely on external tools to accomplish the goal… but it worked.

by Frost1x

Had the same experience with Claude, just somehow the entire thing felt (token) expensive.

by frb

Are models any good at descerning motion from multiple frames?

For instance if I gave models multiple animations of a bouncing ball as individual frames. Would they be able to tell which bounce was the more realistic motion.

(Is this a potential new benchmark? maybe also variations of stair dismount)

by Lerc

I’d imagine they could. I’d try Gemini 3.5 flash with high fps.

by danbrooks

Nice @OP i put together something similar as well. Incidentally I found for motion design specifically llm is not able to infer specific animations as well as it just being described very plainly and accurately what is happening and the timing.

One thing which sort of worked decently was actually take the frames and put them into a grid and have the agent look at the image of all of the frames together. It did surprisingly well but missed a lot of subtle details that it couldn’t see.

Also tried various kinds of vision embeddings, heat map of motion etc, and blur etc to show motion. But none really worked as well so I ended up just describing it until it got it. Haven’t quite found the right solution yet.

by gvkhna

I was creating a scene by scene remake of a cutscene from an old DOS game. The sprite sheet had several sprites which were cycled (e.g. a horse with it's head down and up). The engine would cycle through these regularly to create some "liveliness" in the background. It was tedious and I didn't want to figure out which sprites belonged at which pixel location.

I recorded a video of the relevant part of the cutscene using dosbox and then split it into numbered frames using ffmpeg. Then I gave that + the spritesheet to Claude Code and asked it to figure it out and tell me which ones are at what position. I should probably have deduped it but in any case, it churned through the whole thing and got one or two out of 15 or 16 sprites right. The rest, it just dropped into random places. YMMV

by noufalibrahim

The comments in this post strongly validate the need for reliable video processing and understanding with VLMs.

While you can use Gemini or other local VLMs, the real challenge is token efficiency, accuracy, and coverage. For example, how do you make a VLM “watch” a 2-hour or 4GB video without losing context or meaning?

Video transcript alone can be sufficient for basic workflows needing no visual context. But when deep contextual understanding is required, e.g., self-driving, security analysis, warehouse tracking, etc., you’ll need more advanced methods like keyframe sampling, clipping, chunking, and shots+transcript.

You can explore the different encoding strategies we designed for efficient video processing and understanding here: https://vlm-run.github.io/mm/encoders/#video.

FYI, the repo is now public, and contributions are welcome.

by cpnwaugha

This looks cool but this should be renamed without having Claude in the name.

by zitterbewegung

llm-real-video would be a much better name

by walrus01

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Hi HN! I built this because I was frustrated that no LLM actually "sees" a video — Claude won't accept video files, ChatGPT reads the transcript only, and Gemini samples at a fixed 1fps (missing fast cuts, over-sampling static slides).

    claude-real-video takes a URL or local file and:

    1. Extracts frames at every scene change (not fixed intervals) + a density floor 2. Deduplicates with a sliding-window pixel-diff algorithm (so A-B-A interview cutaways don't re-send the same shot) 3. Transcribes audio (prefers embedded subtitles, falls back to Whisper) 4. Optionally keeps the full soundtrack for audio-capable models 5. Writes a clean MANIFEST.txt you can drop into any LLM chat

    A 10-min presentation goes from ~600 fixed-interval frames to 5-15 meaningful keyframes. 90%+ token savings with better comprehension.

    The dedup approach (v0.2.0) uses real pixel difference on 16x16 RGB thumbnails against a sliding window of the last N kept frames — inspired by videostil's pixelmatch, but simpler and self-contained.

    `--report` generates a self-contained HTML showing every keep/drop decision with diff percentages, so you can tune the threshold visually.

    pip install claude-real-video && crv "https://youtube.com/watch?v=..." --report

    MIT licensed, pure Python + ffmpeg. Happy to answer questions!

    by cortexosmain
  • Very cool I have something that does this as well along these lines. I’ll dig into yours over the next few days and contribute where and if I can too, awesome to see!
    by ProofHouse
  • I think a more or less clunky name like 'llm video preprocessor' would be better description? In any case seems like a you came up with a good project idea. I wonder how long until the sota models will just have this kind of functionallity built in.
    by AmazingEveryDay
  • I gave Claude a video provided by a county attorney for a speeding ticket I got. It was spot on in its analysis, even though I don’t like what the video showed.

    What does it mean that Claude can’t view video; it did it just fine. Or do you mean tool less?

    by garciasn
  • this is really clever, props
    by nxtfari
  • better off using a cloud solution.
    by Jeff9James
  • Gemini does read videos.
    by wesleywt
  • So Claude is a murderbot?
    by speedgeek
  • So Claude is a murderbot?
    by speedgeek
  • Interesting, but how expensive does it get?
    by kraflio
  • my experience with ffmpeg scene detection is that it's flaky. it works, sometimes, but not reliable by any means
    by high_byte
  • So this work basically by dividing into frames..
    by virajk_31
  • How do you handle things like scrolling quickly in a video?
    by fred123123
  • Curious as to how many tokens are used per second of video.
    by nickvec
  • Based on my tests, a frame rate of 2fps is generally sufficient to resolve video content very well.
    by dingody
  • I think this is much more useful than just LLM related applications. I'd suggest renaming it to not make it seem like it's LLM related.
    by BeetleB
  • Cool idea, but keyframes are not videos. Motion, object permanence, are not things Claude can infer from a set of images. Nice demo though!
    by octember
  • I have been going through this with claude and qwenvl3:8b this week. Both are pretty decent at inferring context and analyzing contact sheets. Finding high visual interest moments with a mixture of coarse and fine keyframes.
    by sawjet
  • Exactly! We experimented with a whole bunch of video encoding techniques for LLMs here: https://vlm-run.github.io/mm/encoders/#video
    by fzysingularity
  • I was just thinking about this exact use case yesterday:

    And it's for me measuring different charged speeds at different starting battery capacities and different temperatures and I was like well. What if I just had a video camera pointing at the voltage going in and out and then I could see the battery percentage increase and I can have a temperature gun pointed at the phone as well. And I couldn't know what temperature of the phone is as well and it could just figure it all out create charts..

    This would make reviewing different charging equipment really easy as long as you really have to do is plug it in and tell other people to do the same thing and take a video of it and beat it to the system.

    I might very well give this a try!

    by ElijahLynn
  • It's kind of wild how much we are abandoning basic problem solving skills in favor of just pointing an enormous stack of GPUs at it
    by idiotsecant
  • So I did this yesterday for a video analysis sample with ChatGPT and it took the video, pulled out frames, did difference tests across the frames to look for significant frames to focus on, did image recognition on each frame, and interpolated motion and action between.

    So I’m not sure why this says ChatGPT doesn’t “see” video and reads transcripts. Obviously if the video is already labeled that’s the shortcut. But it did an impressive job describing a video I have no inclination it would have in its training data. One could argue it wasn’t “native” and had an agent orchestrator to rely on external tools to accomplish the goal… but it worked.

    by Frost1x
  • Had the same experience with Claude, just somehow the entire thing felt (token) expensive.
    by frb
  • Are models any good at descerning motion from multiple frames?

    For instance if I gave models multiple animations of a bouncing ball as individual frames. Would they be able to tell which bounce was the more realistic motion.

    (Is this a potential new benchmark? maybe also variations of stair dismount)

    by Lerc
  • I’d imagine they could. I’d try Gemini 3.5 flash with high fps.
    by danbrooks
  • Nice @OP i put together something similar as well. Incidentally I found for motion design specifically llm is not able to infer specific animations as well as it just being described very plainly and accurately what is happening and the timing.

    One thing which sort of worked decently was actually take the frames and put them into a grid and have the agent look at the image of all of the frames together. It did surprisingly well but missed a lot of subtle details that it couldn’t see.

    Also tried various kinds of vision embeddings, heat map of motion etc, and blur etc to show motion. But none really worked as well so I ended up just describing it until it got it. Haven’t quite found the right solution yet.

    by gvkhna
  • I was creating a scene by scene remake of a cutscene from an old DOS game. The sprite sheet had several sprites which were cycled (e.g. a horse with it's head down and up). The engine would cycle through these regularly to create some "liveliness" in the background. It was tedious and I didn't want to figure out which sprites belonged at which pixel location.

    I recorded a video of the relevant part of the cutscene using dosbox and then split it into numbered frames using ffmpeg. Then I gave that + the spritesheet to Claude Code and asked it to figure it out and tell me which ones are at what position. I should probably have deduped it but in any case, it churned through the whole thing and got one or two out of 15 or 16 sprites right. The rest, it just dropped into random places. YMMV

    by noufalibrahim
  • The comments in this post strongly validate the need for reliable video processing and understanding with VLMs.

    While you can use Gemini or other local VLMs, the real challenge is token efficiency, accuracy, and coverage. For example, how do you make a VLM “watch” a 2-hour or 4GB video without losing context or meaning?

    Video transcript alone can be sufficient for basic workflows needing no visual context. But when deep contextual understanding is required, e.g., self-driving, security analysis, warehouse tracking, etc., you’ll need more advanced methods like keyframe sampling, clipping, chunking, and shots+transcript.

    You can explore the different encoding strategies we designed for efficient video processing and understanding here: https://vlm-run.github.io/mm/encoders/#video.

    FYI, the repo is now public, and contributions are welcome.

    by cpnwaugha
  • This looks cool but this should be renamed without having Claude in the name.
    by zitterbewegung
  • llm-real-video would be a much better name
    by walrus01

Related stories