Hacker News new | past | comments | ask | show | jobs | submit login

Is there anything in the new release that would allow an encoder to be "motion-aware"?

e.g. if the video is static, don't store any information. But if there is movement in the video, start storing frames etc

WHY? I find myself recording lots of videos of me talking through code in an IDE. The screen mostly static, with some occasional the screen scrolling. The regular tradeoff-space afforded by CRF doesn't seem to get me the size results I believe are possible.




This might be helpful: https://video.stackexchange.com/questions/24680/what-is-keyi...

If you're storing video only for offline viewing with minimal seeking, you can increase the iframe seperation, but if you're streaming this video, you'll need to pay the cost of including iframes to allow clients to seek or recover from dropped packets.


This guy is totally right. When there's no change on screen a huge percentage of bandwidth is from iframes, essentially start over points for fast forward and network corruption.

There's a tradeoff between skip/fast forward fidelity, streaming delay, and iframes. If you're not live streaming and don't care how easy it is to skip around the video increase the iframes inverval as much as you want and watch the bitrate melt away


If you're streaming, you don't need to implement full I-frames; instead you can do a kind of top-to-bottom rolling refresh. The video will be corrupt until the decoder catches up, but that's OK.

This is mostly used for TV broadcasts where you don't want the whole keyframe to get lost because of some brief interference. It's also good because it lowers peak bandwidth per second.


Ah, wonderful. Danke.


Encoders already do this to some extent, but that is the codecs job (AV1, H264 etc) not FFmpegs.


Most modern video codecs (vp9, av1, h264, h265, etc) handle motion-less or motion compression very well with diff between frames. The newer ones handle motion based frames better by shifting the next frame around to find the smallest diff. Ffmpeg just uses whatever codec configured.


There was a submission on HN a while back regarding the complexity of modern codecs. You should read this: https://news.ycombinator.com/item?id=19997813


Increase the key-frame interval




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: