4 ms·
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.
by hivacruz 2y 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 https://ffmpeg.org//ffmpeg-filters.html#select_002c-aselect
- sunnybeetroot 2y agoI didn’t know this is existed but it sounds very handy, thanks!
- Beefin 2y agothought the same thing and wrote this: https://blog.mixpeek.com/dynamic-video-chunking-scene-detection/ https://blog.mixpeek.com/dynamic-video-chunking-scene-detect... which uses https://github.com/Breakthrough/PySceneDetect https://github.com/Breakthrough/PySceneDetect under the hood i'm sure it's the same ffmpeg method ;)
- okigan 2y agoDon’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.