Hacker News new | ask | show | jobs
by hivacruz 539 days ago
Instead of taking a image every 5 seconds from the video and embed it, you could detect when there are enough changes between frames to decide to embed or not. One frame, one scene, one vector.

For instance, Ffmpeg can do that with the filter `select=gt(scene,0.3)`. It selects the frames whose scene detection score is greater then 0.3 (the scene change detection score are values between 0 and 1).

https://ffmpeg.org//ffmpeg-filters.html#select_002c-aselect

3 comments

I didn’t know this is existed but it sounds very handy, thanks!
Don’t you need to apply filtering to the frame selection based on scene score?

Otherwise you’d select frames with 0.3, 0.7, 1.0, 0.7, 0.3 - selecting 5 frames instead of 1?

Two pass with sobel filter comes to mind.

thought the same thing and wrote this: https://blog.mixpeek.com/dynamic-video-chunking-scene-detect...

which uses https://github.com/Breakthrough/PySceneDetect

under the hood i'm sure it's the same ffmpeg method ;)