Seeking Issue - No not that one

Note: Further testing revealed this to be a seeking issue in general and not specific to embys intro skip function. See follow on replies.

I am having an issue where sometimes the Emby Intro Skip function fails to skip the intro, instead the video jumps back to the start, and sometimes it freezes there.

I have been watching my own encode of “Star Trek Deep Space Nine” which is a 1080p23, ff-x264-default, DD5.1 AC3, .mkv
The issue would happen roughly 4 or 5 times in a season of ~26 episodes.

In-between watching DS9 I also recently watched “Muderbot” and “Dexter: Original Sin” both are 2160p23, hdr, hevc, web-dl, .mkv’s. all 20 episodes skipped the intro flawlessly.

The issue is repeatable on the episodes it occurs.
However, someone else replicating it would require setting up an Emby server to pass the intro start/end seek points. I could provide access to some test episodes on my emby server or remote control of my vero box if required. See Latest Update for test file and script.

I experienced issues with seeking when I first got my VeroV and found that encoding with keyint=96 resolved that issue. However, that seeking issue was resolved with an osmc hotfix and I can confirm that seeking with the remote works flawlessly.

I found that encoding with keyint=24 resolves the issue on the episode I have been testing with.
I also found that disabling Hardware Acceleration resolved the issue.
Neither of these are viable solutions, as most x264 encodes will have keyint=250 as that is the default and the arm cpu is unable to decode 1080p23 h264 in realtime.

Encoding with x265 - I thought worked but I haven’t been able to replicate.
Encoding audio with AAC had no effect.
Going from no buffer to 1GB @ 50x had no effect - normal setup is defaults with 512MB.

Issue does not occur on other devices - PC Kodi 21.2 + Emby in browser, LG TV Emby App.

I am not sure if the keyint is a false lead as some episodes that don’t work report “SeekTime - seek ended up on time X” that is about 10 seconds off target, but others that do work also report similar offsets. But on the test episode re-encoded with keyint=24 the offset drops from ~10s to ~1s as expected.

I don’t know what exactly is at fault here, though getting it working by disabling HW acceleration leads me to believe it is the OSMC/VeroV and the issue might be related to the other seeking issue hot fixed from the march update.

First Log: paste.osmc.tv/vuwiyajalu
Emby triggers intro skip @ 2025-07-18 01:49:02.289 T:3246 info : EMBY.hooks.player: Skip intro jump 5980000000.
S07E01 x264-defaults.
instead of skipping the intro the video starts again at the beginning.
Playback has a few skips (that work flawlessly) to get to around the 8min mark where the intro starts.

Second Log: paste.osmc.tv/jegepodovo
Emby triggers intro skip @ 2025-07-18 02:29:26.375 T:3246 info : EMBY.hooks.player: Skip intro jump 5980000000
S07E01 x264-keyint=24.
Intro is skipped successfully.
This file is encoded with additional x264-params: “keyint=24:min-keyint=1”.

Third Log: paste.osmc.tv/yidofebojo
Emby triggers intro skip @ 2025-07-18 02:39:50.726 T:3256 info : EMBY.hooks.player: Skip intro jump 5980000000
S07E01 x264-defaults.
repeat of first log with only 1 change: settings>player>videos>Accelerate h264 = never.
Intro is skipped successfully after a ~2s loading spinner.

Fourth Log: paste.osmc.tv/avumupuvab
Emby triggers intro skip @ 2025-07-18 02:48:10.894 T:3255 info : EMBY.hooks.player: Skip intro jump 3890000000
S07E03 x264-defaults.
Example of a file with the same encode settings as the problem files skipping successfully.

Mediainfo of S07E01 with x264-defaults:
General
Unique ID                                : 217238276245602222087493091432032130418 (0xA36E91F3F6D116516EE0323013CC5572)
Complete name                            : X:\TV\Star Trek Deep Space Nine\Season 7\Star Trek Deep Space Nine S07E01 Image in the Sand [x264 default].mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 4.92 GiB
Duration                                 : 45 min 6 s
Overall bit rate                         : 15.6 Mb/s
Frame rate                               : 23.976 FPS
Movie name                               : Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC
Encoded date                             : 2025-07-14 02:05:12 UTC
Writing application                      : mkvmerge v91.0 ('Signs') 64-bit
Writing library                          : libebml v1.4.5 + libmatroska v1.7.1 / Lavf61.7.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.1
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 45 min 6 s
Bit rate                                 : 15.2 Mb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.305
Stream size                              : 4.78 GiB (97%)
Title                                    : Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC
Writing library                          : x264 core 164 r3106 eaa68fa
Encoding settings                        : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=24 / lookahead_threads=4 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=17.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Commercial name                          : Dolby Digital
Codec ID                                 : A_AC3
Duration                                 : 45 min 6 s
Bit rate mode                            : Constant
Bit rate                                 : 448 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 145 MiB (3%)
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No
Dialog Normalization                     : -27 dB
compr                                    : 12.04 dB
dynrng                                   : 6.02 dB
cmixlev                                  : -3.0 dB
surmixlev                                : -3 dB
mixlevel                                 : 105 dB
roomtyp                                  : Large
dialnorm_Average                         : -27 dB
dialnorm_Minimum                         : -27 dB
dialnorm_Maximum                         : -27 dB

Text #1
ID                                       : 3
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Duration                                 : 43 min 54 s
Bit rate                                 : 73 b/s
Frame rate                               : 0.299 FPS
Count of elements                        : 787
Stream size                              : 23.7 KiB (0%)
Title                                    : (SRT)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #2
ID                                       : 4
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 43 min 54 s
Bit rate                                 : 131 b/s
Frame rate                               : 0.311 FPS
Count of elements                        : 818
Compression mode                         : Lossless
Stream size                              : 42.3 KiB (0%)
Title                                    : SDH (SSA)
Language                                 : English
Default                                  : No
Forced                                   : No

Menu
00:00:00.000                             : Chapter 1
00:09:56.863                             : Chapter 2
00:14:38.144                             : Chapter 3
00:20:04.470                             : Chapter 4
00:25:25.958                             : Chapter 5
00:30:47.112                             : Chapter 6
00:34:47.686                             : Chapter 7
00:40:52.884                             : Chapter 8
Mediainfo of S07E01 with x264-keyint=24:
General
Unique ID                                : 50238198559233036279768332532206190556 (0x25CB866CAC7B03ED496578DC6102BFDC)
Complete name                            : X:\Emby Testing 2 - TV\Star Trek Deep Space Nine\Season 7\Star Trek Deep Space Nine S07E01 Image in the Sand [x264 keyint=24].mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 5.21 GiB
Duration                                 : 45 min 6 s
Overall bit rate                         : 16.5 Mb/s
Frame rate                               : 23.976 FPS
Movie name                               : Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC
Encoded date                             : 2025-07-17 14:32:11 UTC
Writing application                      : mkvmerge v91.0 ('Signs') 64-bit
Writing library                          : libebml v1.4.5 + libmatroska v1.7.1 / Lavf61.7.100

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L4.1
Format settings                          : CABAC / 4 Ref Frames
Format settings, CABAC                   : Yes
Format settings, Reference frames        : 4 frames
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 45 min 6 s
Bit rate                                 : 16.1 Mb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.323
Stream size                              : 5.06 GiB (97%)
Title                                    : Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC
Writing library                          : x264 core 164 r3106 eaa68fa
Encoding settings                        : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.15 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=24 / lookahead_threads=4 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=24 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=24 / rc=crf / mbtree=1 / crf=17.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Commercial name                          : Dolby Digital
Codec ID                                 : A_AC3
Duration                                 : 45 min 6 s
Bit rate mode                            : Constant
Bit rate                                 : 448 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 145 MiB (3%)
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No
Dialog Normalization                     : -27 dB
compr                                    : 12.04 dB
dynrng                                   : 6.02 dB
cmixlev                                  : -3.0 dB
surmixlev                                : -3 dB
mixlevel                                 : 105 dB
roomtyp                                  : Large
dialnorm_Average                         : -27 dB
dialnorm_Minimum                         : -27 dB
dialnorm_Maximum                         : -27 dB

Text #1
ID                                       : 3
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Duration                                 : 43 min 54 s
Bit rate                                 : 73 b/s
Frame rate                               : 0.299 FPS
Count of elements                        : 787
Stream size                              : 23.7 KiB (0%)
Title                                    : (SRT)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #2
ID                                       : 4
Format                                   : ASS
Codec ID                                 : S_TEXT/ASS
Codec ID/Info                            : Advanced Sub Station Alpha
Duration                                 : 43 min 54 s
Bit rate                                 : 131 b/s
Frame rate                               : 0.311 FPS
Count of elements                        : 818
Compression mode                         : Lossless
Stream size                              : 42.3 KiB (0%)
Title                                    : SDH (SSA)
Language                                 : English
Default                                  : No
Forced                                   : No

Menu
00:00:00.000                             : Chapter 1
00:09:56.863                             : Chapter 2
00:14:38.144                             : Chapter 3
00:20:04.470                             : Chapter 4
00:25:25.958                             : Chapter 5
00:30:47.112                             : Chapter 6
00:34:47.686                             : Chapter 7
00:40:52.884                             : Chapter 8

Updated to the latest staging release to test, unfortunately no change.

Log after updating: paste.osmc.tv/oyicobujal
Emby triggers intro skip @ 2025-07-18 14:10:31.888 T:3255 info : EMBY.hooks.player: Skip intro jump 5980000000
exact same behaviour as before.
I also adjusted cache size from 512MB to 64MB.

switching emby addon to use native paths (access via samba share directly instead of via http) had no effect.

Doing further testing and starting to get unpredictable results.
S07E03 was working perfectly, but now it fails sometimes but not others, haven’t been able to establish a pattern yet. Suspect changing cache from 512 to 64MB, or playing it before or after an episode that fails to skip.

I managed to get S07E01 and S07E02 working correctly by changing the intro end marker in Emby to match the existing chapter marker that was within a few seconds. Will have to test if the exact timestamp is relevant or arbitrary. Foreshadowing…

Will probably try installing the Oct-24 release next.

I have now tested a few releases.
The May (Kodi 20.5) and August (Kodi 21.1) 2024 releases behaved the same as the latest staging release.
The March 2025 release works correctly.
The March release has the same seeking issues as before, but intro skipping works correctly every time.

Hopefully that narrows down the likely culprit to whatever the post March CDVDDemuxFFmpeg::SeekTime patch is doing differently between the 2 seeking behaviours.

Log with succesfull skip of S07E01 x264-defaults on March release: paste.osmc.tv/orabocacaz
Emby tirggers intro skip @ 2025-07-18 18:16:16.522 T:3257 info : EMBY.hooks.player: Skip intro jump 5980000000

Trying to understand what could cause the different seeking behaviour of emby intro skip vs remote key press.
I went through the kodi for emby addon github and found the seek function used by intro skip: plugin.video.emby/helper/playerops.py at next-gen-dev-python3 · MediaBrowser/plugin.video.emby
it is sending a json_rpc with “method”:“Player.Seek” via the imported xbmc.executeJSONRPC function.

So I guess you can test intro skipping behaviour by sending seek commands via json_rpc.

To confirm I tested seeking in the webui on a 2nd verov running post march patch.
Playing back the S07E01 file directly (via a samba share in Videos, not via emby addon in TV Shows) and I managed to get a seek to reset playback position to the start. It took a few tries but it did it eventually.
Log file: paste.osmc.tv/afefehipey
Failed seek @ 2025-07-19 11:40:11.375 T:3307 debug <CWebserver[80]>: request received for /jsonrpc?Player.Seek

Relevant sections in log (cleaned up):
Successful Seek

2025-07-19 11:40:04.737 T:3307    debug <CWebserver[80]>: request received for /jsonrpc?Player.GetActivePlayers
2025-07-19 11:40:04.754 T:3307    debug <CWebserver[80]>: request received for /jsonrpc?Player.Seek
2025-07-19 11:40:04.758 T:3273    debug <general>: CDVDClock::SetSpeedAdjust - adjusted:0.000000
2025-07-19 11:40:04.759 T:3273    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 378886.000000
2025-07-19 11:40:04.759 T:3276    debug <general>: AMLInsecureVideoCodec::SetSpeed, speed(0)
2025-07-19 11:40:04.764 T:3279    debug <general>: CDVDAudio::Pause - pausing audio stream
2025-07-19 11:40:04.765 T:3275    debug <general>: CDoubleCache::Reset - (0xe3831480) Cache miss for 751985459 with new=131172493-162760845 and old=380900085-414061301
2025-07-19 11:40:04.765 T:3275    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/TV/Star Trek Deep Space Nine/Season 7/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 default].mkv> cache completely reset for seek to position 751985459
2025-07-19 11:40:04.782 T:2902    debug <general>: ------ Window Init (DialogSeekBar.xml) ------
2025-07-19 11:40:04.824 T:3273    debug <general>: SeekTime - seek ended up on time 378.461
2025-07-19 11:40:04.824 T:3273    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 378886.000000, success
2025-07-19 11:40:04.824 T:3273    debug <general>: CVideoPlayer::FlushBuffers - flushing buffers
2025-07-19 11:40:04.827 T:2902    debug <general>: ------ Window Init (Custom_1109_TopBarOverlay.xml) ------
2025-07-19 11:40:04.834 T:3276    debug <general>: AMLInsecureVideoCodec::reset
2025-07-19 11:40:04.834 T:3279    debug <general>: CDVDAudio::Flush - flush audio stream
2025-07-19 11:40:04.834 T:3279    debug <general>: CDVDAudio::Pause - pausing audio stream
2025-07-19 11:40:04.861 T:3279    debug <general>: CVideoPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:04.861 T:3273    debug <general>: CVideoPlayer - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:04.863 T:3276    debug <general>: CVideoPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:04.863 T:3276    debug <general>: CVideoPlayerVideo - Stillframe left, switching to normal playback
2025-07-19 11:40:04.900 T:3273    debug <general>: CVideoPlayer::CheckContinuity - wrapback :2, prev:378628000.000000, curr:378461000.000000, diff:-167000.000000
2025-07-19 11:40:05.263 T:3273    debug <general>: CVideoPlayer::HandleMessages - player started 1
2025-07-19 11:40:05.263 T:3273    debug <general>: CVideoPlayer::HandleMessages - player started 2
2025-07-19 11:40:05.263 T:3054    debug <general>: OnAVChange: CApplication::OnAVChange
2025-07-19 11:40:05.263 T:3273    debug <general>: VideoPlayer::Sync - Audio - pts: 379200000.000000, cache: 436252.897316, totalcache: 770666.718483
2025-07-19 11:40:05.264 T:3273    debug <general>: VideoPlayer::Sync - Video - pts: 378461000.000000, cache: 50000.000000, totalcache: 100000.000000
2025-07-19 11:40:05.264 T:3273    debug <general>: CDVDClock::SetSpeedAdjust - adjusted:0.000000
2025-07-19 11:40:05.264 T:3276    debug <general>: CVideoPlayerVideo - CDVDMsg::GENERAL_RESYNC(378361000.000000)
2025-07-19 11:40:05.264 T:3276    debug <general>: AMLInsecureVideoCodec::SetSpeed, speed(1000)
2025-07-19 11:40:05.264 T:3279    debug <general>: CVideoPlayerAudio - CDVDMsg::GENERAL_RESYNC(378361000.000000), level: 2, cache: 451810.480983
2025-07-19 11:40:05.264 T:3279    debug <general>: CDVDAudio::Resume - resume audio stream
2025-07-19 11:40:05.264 T:3042    debug <general>: ActiveAE - start sync of audio stream
2025-07-19 11:40:05.387 T:3042    debug <general>: ActiveAE::SyncStream - average error of 394.286546, start adjusting
2025-07-19 11:40:05.728 T:3042    debug <general>: ActiveAE::SyncStream - average error 26.167845, last average error: 394.286546
2025-07-19 11:40:05.856 T:3042    debug <general>: ActiveAE::SyncStream - average error of -18.160850, start adjusting
2025-07-19 11:40:05.856 T:3042    debug <general>: ActiveAE::SyncStream - average error -0.015017 below threshold of 30.000000

Failed Seek

2025-07-19 11:40:11.360 T:3307    debug <CWebserver[80]>: request received for /jsonrpc?Player.GetActivePlayers
2025-07-19 11:40:11.375 T:3307    debug <CWebserver[80]>: request received for /jsonrpc?Player.Seek
2025-07-19 11:40:11.386 T:3273    debug <general>: CDVDClock::SetSpeedAdjust - adjusted:0.000000
2025-07-19 11:40:11.386 T:3273    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 622455.000000
2025-07-19 11:40:11.389 T:3276    debug <general>: AMLInsecureVideoCodec::SetSpeed, speed(0)
2025-07-19 11:40:11.403 T:3279    debug <general>: CDVDAudio::Pause - pausing audio stream
2025-07-19 11:40:11.414 T:2902    debug <general>: ------ Window Init (DialogSeekBar.xml) ------
2025-07-19 11:40:11.418 T:3275    debug <general>: CDoubleCache::Reset - (0xe3831480) Cache miss for 1317037507 with new=380900085-414061301 and old=751985459-780428083
2025-07-19 11:40:11.418 T:3275    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/TV/Star Trek Deep Space Nine/Season 7/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 default].mkv> cache completely reset for seek to position 1317037507
2025-07-19 11:40:11.455 T:2902    debug <general>: ------ Window Init (Custom_1109_TopBarOverlay.xml) ------
2025-07-19 11:40:11.482 T:3273    debug <general>: SeekTime - seek ended up on time 613.112
2025-07-19 11:40:11.482 T:3273    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 622455.000000, success
2025-07-19 11:40:11.482 T:3273    debug <general>: CVideoPlayer::FlushBuffers - flushing buffers
2025-07-19 11:40:11.484 T:3276    debug <general>: AMLInsecureVideoCodec::reset
2025-07-19 11:40:11.490 T:3279    debug <general>: CDVDAudio::Flush - flush audio stream
2025-07-19 11:40:11.490 T:3279    debug <general>: CDVDAudio::Pause - pausing audio stream
2025-07-19 11:40:11.509 T:3279    debug <general>: CVideoPlayerAudio - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:11.509 T:3273    debug <general>: CVideoPlayer - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:11.509 T:3276    debug <general>: CVideoPlayerVideo - CDVDMsg::GENERAL_SYNCHRONIZE
2025-07-19 11:40:11.513 T:3276    debug <general>: CVideoPlayerVideo - Stillframe left, switching to normal playback
2025-07-19 11:40:11.523 T:3273    debug <general>: CVideoPlayer::CheckContinuity - wrapback :2, prev:613279000.000000, curr:613112000.000000, diff:-167000.000000
2025-07-19 11:40:11.763 T:3273    debug <general>: CVideoPlayer::HandleMessages - player started 2
2025-07-19 11:40:14.565 T:3273    debug <general>: VideoPlayer::Sync - Video - pts: 613112000.000000, cache: 50000.000000, totalcache: 100000.000000
2025-07-19 11:40:14.565 T:3273    debug <general>: CDVDClock::SetSpeedAdjust - adjusted:0.000000
2025-07-19 11:40:14.565 T:3276    debug <general>: CVideoPlayerVideo - CDVDMsg::GENERAL_RESYNC(0.000000)
2025-07-19 11:40:14.565 T:3276    debug <general>: AMLInsecureVideoCodec::SetSpeed, speed(1000)
2025-07-19 11:40:14.571 T:3279    debug <general>: CVideoPlayerAudio - CDVDMsg::GENERAL_RESYNC(0.000000), level: 0, cache: 149909.208000
2025-07-19 11:40:14.572 T:3279    debug <general>: CDVDAudio::Resume - resume audio stream
2025-07-19 11:40:14.653 T:3279    debug <general>: CDVDAudio::Flush - flush audio stream
2025-07-19 11:40:14.835 T:2902    debug <general>: ------ Window Deinit (DialogSeekBar.xml) ------
2025-07-19 11:40:14.877 T:2902    debug <general>: ------ Window Deinit (Custom_1109_TopBarOverlay.xml) ------
2025-07-19 11:40:14.898 T:3042    debug <general>: ActiveAE - start sync of audio stream
2025-07-19 11:40:14.899 T:3042  warning <general>: ActiveAE - large audio sync error: 622012.681992
2025-07-19 11:40:14.900 T:3042  warning <general>: ActiveAE - large audio sync error: 622013.016076
2025-07-19 11:40:14.901 T:3042  warning <general>: ActiveAE - large audio sync error: 622012.349909

OneDrive share with 11min clip of S07E01, and a python script to test seeking via jsonrpc: OSMC Test Files

Starting the video and calling the python script via

python testseek.py 9 58

results in the seek failing and playback restarting.
9:56 and 9:57 work as expected,
9:58 and 9:59 fail,
10:00 and 10:01 work as expected.
10:22 and 10:23 also failed. This is the timestamp (622455) that failed when randomly clicking on the seek bar in the webui.

to reiterate: this is what happens with the patched march release, the unpatched march release works correctly - though it has the other seeking issue where sometimes the video freezes for a few seconds after seeking while the audio plays.

So I am not sure it is different seeking behaviour between clicking the remote and json_rpc calls, but rather the very specific timestamps that result in a failed seek.

I will probably stop flooding the forum now and get back to actually watching some TV.
Cheers.

You could update to the staging repository or wait for the next stable update. Seeking issues have been fixed for a while now.

I was on the staging repository when I discovered this issue.
As stated, the issue does not present in the March’25 release.

Honestly…

I experienced issues with seeking when I first got my VeroV and found that encoding with keyint=96 resolved that issue. However, that seeking issue was resolved with an osmc hotfix and I can confirm that seeking with the remote works flawlessly.

I don’t know what exactly is at fault here, though getting it working by disabling HW acceleration leads me to believe it is the OSMC/VeroV and the issue might be related to the other seeking issue hot fixed from the march update.

Updated to the latest staging release to test, unfortunately no change.

I have now tested a few releases.
The May (Kodi 20.5) and August (Kodi 21.1) 2024 releases behaved the same as the latest staging release.
The March 2025 release works correctly.
The March release has the same seeking issues as before, but intro skipping works correctly every time.

to reiterate: this is what happens with the patched march release, the unpatched march release works correctly - though it has the other seeking issue where sometimes the video freezes for a few seconds after seeking while the audio plays.

Sorry, you’ve posted a lot of information and there’s quite a bit to parse. But more data points are indeed better than few.

Your first set of logs don’t show you on the latest staging version, just March 2025 stable.

Then I see a log on a newer kernel.

If you can give us a file, played from eMMC and show us how to reproduce the issue I am sure we can investigate.

It would be good if we can reproduce the problem seeking via the remote rather than programmatically. You say this isn’t possible at all. Can you double check this?

Will give this another read through tomorrow on desktop.

Cheers

Sam

The OneDrive link includes an 11min test clip and a python script to call the player.seek json_rpc function to seek to a desired timestamp.

The first logs were generated with the initial seeking hotfix applied; I later ran that update process again which applied further updates to the latest staging release.

Unless the seeking initiated by remote is somehow special then I would suspect that it is simply chance that a remote seek has not landed on a timestamp which produces the issue.
I will try to get a remote seek to land on the 9:58-9:59 timestamp and report back, but that will have to wait a few days as my 2nd unit (with post march updates applied) is at another house making it difficult to test the remote.

Either way, I see no reason why failing to seek via the inbuilt player.seek function would be an acceptable state - as demonstrated this affects the webui and would also affect kodi remote apps on smartphones etc.

Some additional info about the test file:
Encoded with ffmpeg version 6.0-essentials_build-www.gyan.dev
using

ffmpeg -i "InputFile.hevc" -c:v libx264 -profile:v high -pix_fmt yuv420p -level 4.1 -preset medium -crf 17 -tune film

Muxed with mkvmerge v91.0.

I have tested with the AC3 track transcoded to AAC and OPUS - No change.
I have tested with the Subtitles and Chapters removed - No Change.
I have tested with the mkv remuxed as an mp4 with ffmpeg - No Change.
I have tested with just the video track in the mkv - seek reset back to 0 more frequently.

I think the thing that makes this issue most apparent with this DS9 encode (and a lot of other episodes in the series) is that the intro sequence ends at 9:58 with a 10 second gap between Key Frames @ 9:49 and 9:59. Same occurs at the 10:22 failure case with Key Frames @ 10:13 and 10:23.

So now I am going through a few other files I recently downloaded.
The Accountant 2 Amazon web-dl - keyframes every 5 seconds.
Duster S01E01 HBO-MAX web-dl - keyframes every 4 seconds.
Dexter Resurrection S01E01 Paramount+? web-dl - keyframes every 2 seconds.
The Residence S01E01 Netflix web-dl - keyframes up to ~10s.
The ffmpeg/x264/x265 default keyframe interval is 250 frames, handbrake used 240 in the x264 test I just did.

So I opened up “The.Residence.S01E01.HDR.2160p.WEB.h265-XXXXX.mkv” (WEB.h265 in this context means it is exactly as encoded by Netflix, no re-encoding) and found a nice long keyframe gap @ 1:25 to 1:34 and sure enough seeking to 1:34 reset the playback position to 0.

Completed some testing with the remote on the 2nd unit on the staging release.
I could not replicate the issue using the remote.
Resuming the file to 9:58 and 9:59 also worked correctly.
I even made an encode with keyframe min=250, max=500, to exaggerate the issue, still it seeked perfectly every time.

Only seeking programmatically causes the issue, as far as I can tell.

I wonder what the different behaviour is.
Seeking via remote does tend to start playback at the keyframe after the seek point - so a +60s seek can jump forward 70s, which is fine.
But I would imagine that the programmatic seek intends to start playback at the seek point exactly, as would be desirable when skipping an intro. I think it would be fine to seek to the previous keyframe in this instance. Behaviour should be similar to Resume and Chapter skip - when jumping to a specific point it’s better to see a little extra than miss something.

At this point I have the option of instant seeking but randomly broken intro skip or working intro skip but sluggish seeking. I find the sluggish seeking more tolerable than the broken intro skip, as my most common seek would be to skip the intro.

I can also confirm that programmatic seek fails when playing from eMMC.

Log file of resume to 9:59: paste.osmc.tv/oliqatowas
2025-07-22 15:08:19.574 T:3351 debug : Prepare - Start position set to last stopped position: 599000
No failure.
Resume to 599s seeks to 589s (previous keyframe).

2025-07-22 15:08:19.574 T:3351    debug <general>: Prepare - Start position set to last stopped position: 599000
2025-07-22 15:08:19.584 T:3354    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC [First 11mins].mkv> source read hit eof
2025-07-22 15:08:19.584 T:3351    debug <general>: CFileCache::Seek - <smb://nas.mylan/Cache_Videos/Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC [First 11mins].mkv> waiting for position 1411075208
2025-07-22 15:08:19.611 T:3354    debug <general>: CDoubleCache::Reset - (0xb17d18a0) Cache miss for 1277748559 with new=1410957598-1411088670 and old=0-3145728
2025-07-22 15:08:19.611 T:3354    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/Star.Trek.Deep.Space.Nine.S07E01.Image.in.the.Sand.1080p.TVAI-Upscale.NTSC.DVD.x264.DD.5.1-ATC [First 11mins].mkv> cache completely reset for seek to position 1277748559
2025-07-22 15:08:19.638 T:3351    debug <general>: SeekTime - seek ended up on time 589.297
2025-07-22 15:08:19.638 T:3351    debug <general>: Prepare - starting demuxer from: 599000

Log file of remote seeking on file with min-keyframes=250, max-keyframes=500: paste.osmc.tv/ayanuwafad
No failure.
+60s seek to 63s seeks to 74s.

2025-07-22 15:10:52.983 T:3245    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 63264.918936
2025-07-22 15:10:52.983 T:3248    debug <general>: CDoubleCache::Reset - (0xb22fcc88) Cache miss for 5102447391 with new=0-0 and old=0-20054016
2025-07-22 15:10:52.983 T:3248    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv> cache completely reset for seek to position 5102447391
2025-07-22 15:10:52.983 T:3245    debug <general>: CFileCache::Seek - <smb://nas.mylan/Cache_Videos/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv> waiting for position 5102553029
2025-07-22 15:10:52.989 T:3249    debug <general>: AMLInsecureVideoCodec::SetSpeed, speed(0)
2025-07-22 15:10:53.015 T:3248    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv> source read hit eof
2025-07-22 15:10:53.019 T:3253    debug <general>: CDVDAudio::Pause - pausing audio stream
2025-07-22 15:10:53.028 T:3121    debug <general>: EMBY.hooks.player: playercommand received: ('seek', '{"item":{"title":"Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv","type":"movie"},"player":{"playerid":1,"seekoffset":{"hours":0,"milliseconds":0,"minutes":1,"seconds":0},"speed":1,"time":{"hours":0,"milliseconds":214,"minutes":1,"seconds":3}}}')
2025-07-22 15:10:53.028 T:3121     info <general>: EMBY.hooks.player: [ onSeek ]
2025-07-22 15:10:53.029 T:3121    debug <general>: EMBY.hooks.player: [ onSeek ] {'item': {'title': 'Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv', 'type': 'movie'}, 'player': {'playerid': 1, 'seekoffset': {'hours': 0, 'milliseconds': 0, 'minutes': 1, 'seconds': 0}, 'speed': 1, 'time': {'hours': 0, 'milliseconds': 214, 'minutes': 1, 'seconds': 3}}}
2025-07-22 15:10:53.029 T:3121    debug <general>: EMBY.helper.playerops: --> [ remotecommand received: seek / [0, 0, 0, 0, 0] ]
2025-07-22 15:10:53.029 T:3121    debug <general>: EMBY.helper.playerops: --< [ remotecommand received: seek / [0, 0, 0, 0, 0] ]
2025-07-22 15:10:53.063 T:3248    debug <general>: CDoubleCache::Reset - (0xb22fcc88) Cache miss for 165877303 with new=5102447391-5102578463 and old=0-20185088
2025-07-22 15:10:53.063 T:3248    debug <general>: CFileCache::Process - <smb://nas.mylan/Cache_Videos/Star Trek Deep Space Nine S07E01 Image in the Sand [x264 minkeyint250].mkv> cache completely reset for seek to position 165877303
2025-07-22 15:10:53.124 T:3245    debug <general>: SeekTime - seek ended up on time 74.449
2025-07-22 15:10:53.124 T:3245    debug <general>: CVideoPlayer::HandleMessages: demuxer seek to: 63264.918936, success

Can confirm different results even seeking programmatically, which might explain the difference between seeking with the remote and the type of programmatic seek used by the emby skip intro function.

It seems that only absolute seeking is broken, relative seeking (like you would do with the remote) appears to work correctly.

The json_rpc Player.Seek supports an absolute ‘Time’ value or a relative ‘Seconds’ value.

I have been testing with the absolute time value till now, but I just ran several tests, using the relative seconds value and all seeks were successful.
I am seeking from a paused state at 30s to enable testing the relative seek accurately, and the final time noted is as reported in the webui so it might be off by a second

KeyFrames:
9:32.738
9:43.165
9:46.752
9:49.297
9:59.348

Player.Seek Seconds (relative)
30s + 550(9:40)	= 9:44
30s + 555(9:45)	= 9:47
30s + 556(9:46)	= 9:47
30s + 557(9:47)	= 9:47
30s + 558(9:48)	= 9:50
30s + 559(9:49)	= 9:50
30s + 560(9:50)	= 10:00

Player.Seek Time (absolute)
30s > 9 58 	= return to 0

The results demonstrate why absolute seeking is required for intro skipping as relative skipping jumps to the next keyframe after the desired time.

has anyone had a chance to look at this issue with absolute seeking?
is there anything you need me to clarify?
Is there any more information you need me to provide?