Fast backward by Frame?


I wanted to change the AdvancedSettings.xml file in order to make a small backward of 5 seconds for movies and
animated with subtitle.

The concern is that when returning back, it’s never exactly 5 seconds, it may be 3s, 5s, 10s, it’s truly random.

Is it possible to do a search by frame ?

Thanks !

Do you have omxplayer enabled?

Are you using a custom Seek() valve as described here ?

Can you post your advancedsettings.xml ?

Standard skip steps are only specified in seconds for larger videos, for short videos the step sizes are scaled down to a percentage of the total video length if the video is short.

For example the default 30 second jump (cursor right) will be 30 seconds on longer videos but on a video that is only 5 minutes long it might be 10 seconds and shorter again for a shorter video.

This can be overridden in advancedsettings.xml, however if you specify the step size directly using Seek() I believe it should be that number of seconds no matter the length of the video.

popcornmix@ Yes, is enabled.

I do not use the percentage, because the main video have a duration of 25 minutes and sometimes 1 or 2 hours.

I have never managed to know how to return to exactly 3 sec !

My advancedsettings.xml: in /home/osmc/.kodi/userdata
My remote.xml:

Technically you can only seek to an IDR frame, which depending on encoder settings may only be every 5 or 10 seconds. I suspect this is the effect you are seeing. Some files may have IDR frames more often (e.g. every second). Live TV will have this to make channel switch times acceptable. If you are encoding your own files then you can make the IDR frames more common which will improve seek behaviour.

The only way it is possible to seek to a finer granularity is by seeking to the prior IDR frame and then decoding and discarding each frame until you get to the desired point (because frames are dependent on previous frames back to the last IDR point).
If the video is hard (e.g. high bitrate 1080p) and if the IDR frames are far apart then this type of seek (kodi calls it accurate seek) is expensive and may require a number of seconds to achieve.

omxplayer only supports inaccurate seeks.
VideoPlayer on master (i.e. what will be in Kodi Krypton) does support accurate on Pi. It’s arguable if this is a good thing, as it slows down seeking.
I think the jarvis builds osmc uses also only supports inaccurate seeks (not 100% certain without checking the code).

I can only guess, but I think seeking is based on keyframes to prevent image corruption and very slow speed. So one frame at a time would be really slow.

No I do not do the videos, I depend on those who made encoding. Regardless of the codec or resolution, the problem still appears, it looks IDR Frame like you said.

What you say is only defined by kodi or RPI is responsible ?