marzzzello / mpv_thumbnail_script

A Lua script to show preview thumbnails in mpv's OSC seekbar, sans external dependencies (fork)
GNU General Public License v3.0
276 stars 20 forks source link

Thumbnailing fails on newer mpv commits #20

Closed bradenhilton closed 2 years ago

bradenhilton commented 2 years ago

Description of the bug I typically use Scoop to install mpv on Windows, with Scoop's mpv-git (git builds) and mpv (release builds) installers using shinchiro's mpv-player-windows builds.

Thumbnailing fails on the latest version of the git build (version 20220626, built from mpv commit 3a2838c). The error is the same as in https://github.com/marzzzello/mpv_thumbnail_script/issues/16#issuecomment-1126714342, and the suggested fix in https://github.com/marzzzello/mpv_thumbnail_script/issues/16#issuecomment-1126716567 of symlinking mpv or editing the path in the script does not resolve the issue.

Conversely, thumbnailing works as expected on the 0.34.0 release build with the same configs and scripts.

To Reproduce Steps to reproduce the behavior:

  1. Play a video with the latest mpv-player-windows git build (or perhaps just play a video from mpv commit 3a2838c?)
  2. Receive error Thumbnailing failed, check console for details

Expected behavior The script should successfully generate thumbnails.

Debug log

Log (git build version 20220626) ```console ❯ mpv --msg-level='mpv_thumbnail_script_server=debug,mpv_thumbnail_script_client_osc=debug,ytdl_hook=debug' 'video.mp4' [ytdl_hook] Loading lua script @ytdl_hook.lua... [ytdl_hook] loading mp.defaults [ytdl_hook] loading @ytdl_hook.lua [mpv_thumbnail_script_client_osc] Loading lua script ~/scoop/apps/mpv-git/current/portable_config/scripts/mpv_thumbnail_script_client_osc.lua... [ytdl_hook] reading options for ytdl_hook [mpv_thumbnail_script_client_osc] loading mp.defaults [ytdl_hook] script-opts/ytdl_hook.conf not found. [ytdl_hook] lua-settings/ytdl_hook.conf not found. [mpv_thumbnail_script_client_osc] loading file ~/scoop/apps/mpv-git/current/portable_config/scripts/mpv_thumbnail_script_client_osc.lua [sub_select] script-opts/sub_select.conf:3 unknown key 'force-prediction', ignoring [sub_select] script-opts/sub_select.conf:5 unknown key 'observer_audio_switches', ignoring [mpv_thumbnail_script_client_osc] reading options for mpv_thumbnail_script [mpv_thumbnail_script_client_osc] Opened config file script-opts/mpv_thumbnail_script.conf. [mpv_thumbnail_script_client_osc] reading options for osc [mpv_thumbnail_script_client_osc] Opened config file script-opts/osc.conf. [ytdl_hook] ytdl:// hook [mpv_thumbnail_script_client_osc] osc_init [ytdl_hook] not a ytdl:// url [mpv_thumbnail_script_client_osc] osc_init (+) Video --vid=1 (*) (h264 1080x1920 18.530fps) [mpv_thumbnail_script_client_osc] osc_init Using hardware decoding (d3d11va). VO: [gpu] 1080x1920 d3d11[nv12] [osd/libass] fontselect: Using default font family: (Source Sans Pro, 400, 0) -> ArialMT, 0, ArialMT [osd/libass] fontselect: Using default font family: (Source Sans Pro, 700, 0) -> Arial-BoldMT, 0, Arial-BoldMT V: 00:00:00 / 00:00:26 (0%) [mpv_thumbnail_script_client_osc] Registered worker mpv_thumbnail_script_server_1 [mpv_thumbnail_script_client_osc] Gathering video/thumbnail state [mpv_thumbnail_script_client_osc] Thumbnailer.state: {"thumbnail_delta" = 5, "thumbnail_count" = 6, "finished_thumbnails" = 0, "thumbnails" = {-1, -1, -1, -1, -1, -1}, "thumbnail_directory" = "~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482", "is_remote" = false, "thumbnail_size" = {"h" = 300, "w" = 168}, "ready" = true, "available" = true, "worker_extra" = {}, "thumbnail_template" = "~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\%06d.bgra"} [mpv_thumbnail_script_client_osc] Splitting 6 thumbnails amongst 1 worker(s) [mpv_thumbnail_script_client_osc] Giving workers state: {"thumbnail_delta":5,"thumbnail_count":6,"finished_thumbnails":0,"thumbnails":[-1,-1,-1,-1,-1,-1],"worker_input_path":"video.mp4","thumbnail_directory":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482","is_remote":false,"worker_extra":[],"thumbnail_size":{"h":300,"w":168},"ready":true,"available":true,"enabled":true,"thumbnail_template":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482\\%06d.bgra"} V: 00:00:00 / 00:00:26 (0%) [mpv_thumbnail_script_client_osc] Assigning job to mpv_thumbnail_script_server_1 [1,5,3,2,4,6] [mpv_thumbnail_script_client_osc] osc_init V: 00:00:03 / 00:00:26 (13%) [mpv_thumbnail_script_server_1] Thumbnailing command failed! [mpv_thumbnail_script_server_1] mpv process error: nil [mpv_thumbnail_script_server_1] Process stdout: [mpv_thumbnail_script_server_1] Debug log: ~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\000000.bgra.log [mpv_thumbnail_script_server_1] Output file missing! ~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\000000.bgra V: 00:00:16 / 00:00:26 (61%) [mpv_thumbnail_script_client_osc] Splitting 6 thumbnails amongst 1 worker(s) [mpv_thumbnail_script_client_osc] Giving workers state: {"thumbnail_delta":5,"thumbnail_count":6,"finished_thumbnails":0,"thumbnails":[0,-1,-1,-1,-1,-1],"worker_input_path":"video.mp4","thumbnail_directory":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482","is_remote":false,"worker_extra":[],"thumbnail_size":{"h":300,"w":168},"ready":true,"available":true,"enabled":true,"thumbnail_template":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482\\%06d.bgra"} [mpv_thumbnail_script_client_osc] Assigning job to mpv_thumbnail_script_server_1 [1,5,3,2,4,6] V: 00:00:16 / 00:00:26 (61%) VO: [gpu] 666x1184 d3d11[nv12] V: 00:00:16 / 00:00:26 (62%) [mpv_thumbnail_script_client_osc] osc_init [mpv_thumbnail_script_client_osc] osc_init V: 00:00:19 / 00:00:26 (72%) [mpv_thumbnail_script_server_1] Thumbnailing command failed! [mpv_thumbnail_script_server_1] mpv process error: nil [mpv_thumbnail_script_server_1] Process stdout: [mpv_thumbnail_script_server_1] Debug log: ~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\000000.bgra.log [mpv_thumbnail_script_server_1] Output file missing! ~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\000000.bgra V: 00:00:26 / 00:00:26 (100%) Exiting... (End of file) [ytdl_hook] Exiting... [mpv_thumbnail_script_client_osc] Exiting... ```
Log (release build version 0.34.0) ```console ❯ mpv --msg-level='mpv_thumbnail_script_server=debug,mpv_thumbnail_script_client_osc=debug,ytdl_hook=debug' 'video.mp4' [ytdl_hook] Loading lua script @ytdl_hook.lua... [ytdl_hook] loading mp.defaults [ytdl_hook] loading @ytdl_hook.lua [ytdl_hook] reading options for ytdl_hook [ytdl_hook] script-opts/ytdl_hook.conf not found. [ytdl_hook] lua-settings/ytdl_hook.conf not found. [mpv_thumbnail_script_client_osc] Loading lua script ~/scoop/apps/mpv/current/portable_config/scripts/mpv_thumbnail_script_client_osc.lua... [mpv_thumbnail_script_client_osc] loading mp.defaults [mpv_thumbnail_script_client_osc] loading file ~/scoop/apps/mpv/current/portable_config/scripts/mpv_thumbnail_script_client_osc.lua [sub_select] script-opts/sub_select.conf:3 unknown key 'force-prediction', ignoring [sub_select] script-opts/sub_select.conf:5 unknown key 'observer_audio_switches', ignoring [mpv_thumbnail_script_client_osc] reading options for mpv_thumbnail_script [mpv_thumbnail_script_client_osc] Opened config file script-opts/mpv_thumbnail_script.conf. [mpv_thumbnail_script_client_osc] reading options for osc [mpv_thumbnail_script_client_osc] Opened config file script-opts/osc.conf. [ytdl_hook] ytdl:// hook [ytdl_hook] not a ytdl:// url [mpv_thumbnail_script_client_osc] osc_init (+) Video --vid=1 (*) (h264 1080x1920 18.530fps) [mpv_thumbnail_script_client_osc] osc_init Using hardware decoding (d3d11va). VO: [gpu] 1080x1920 d3d11[nv12] V: 00:00:00 / 00:00:26 (0%) [osd/libass] fontselect: Using default font family: (Source Sans Pro, 400, 0) -> ArialMT, 0, ArialMT [osd/libass] fontselect: Using default font family: (Source Sans Pro, 700, 0) -> Arial-BoldMT, 0, Arial-BoldMT [mpv_thumbnail_script_client_osc] Registered worker mpv_thumbnail_script_server_1 [mpv_thumbnail_script_client_osc] Gathering video/thumbnail state [mpv_thumbnail_script_client_osc] Thumbnailer.state: {"thumbnail_count" = 6, "finished_thumbnails" = 0, "available" = true, "thumbnail_size" = {"h" = 300, "w" = 168}, "is_remote" = false, "thumbnail_template" = "~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482\%06d.bgra", "worker_extra" = {}, "ready" = true, "thumbnails" = {-1, -1, -1, -1, -1, -1}, "thumbnail_delta" = 5, "thumbnail_directory" = "~\AppData\Local\Temp\mpv_thumbs_cache\video-5242482"} [mpv_thumbnail_script_client_osc] Splitting 6 thumbnails amongst 1 worker(s) [mpv_thumbnail_script_client_osc] Giving workers state: {"thumbnail_count":6,"thumbnails":[-1,-1,-1,-1,-1,-1],"finished_thumbnails":0,"available":true,"thumbnail_size":{"h":300,"w":168},"is_remote":false,"thumbnail_template":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482\\%06d.bgra","worker_input_path":"video.mp4","worker_extra":[],"ready":true,"enabled":true,"thumbnail_delta":5,"thumbnail_directory":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482"} [mpv_thumbnail_script_client_osc] Assigning job to mpv_thumbnail_script_server_1 [1,5,3,2,4,6] [mpv_thumbnail_script_client_osc] osc_init V: 00:00:16 / 00:00:26 (61%) [mpv_thumbnail_script_client_osc] Splitting 6 thumbnails amongst 1 worker(s) [mpv_thumbnail_script_client_osc] Giving workers state: {"thumbnail_count":6,"thumbnails":[1,1,1,1,1,1],"finished_thumbnails":6,"available":true,"thumbnail_size":{"h":300,"w":168},"is_remote":false,"thumbnail_template":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482\\%06d.bgra","worker_input_path":"video.mp4","worker_extra":[],"ready":true,"enabled":true,"thumbnail_delta":5,"thumbnail_directory":"~\\AppData\\Local\\Temp\\mpv_thumbs_cache\\video-5242482"} [mpv_thumbnail_script_client_osc] Assigning job to mpv_thumbnail_script_server_1 [1,5,3,2,4,6] V: 00:00:16 / 00:00:26 (61%) VO: [gpu] 666x1184 d3d11[nv12] V: 00:00:16 / 00:00:26 (62%) [mpv_thumbnail_script_client_osc] osc_init [mpv_thumbnail_script_client_osc] osc_init V: 00:00:26 / 00:00:26 (100%) Exiting... (End of file) [ytdl_hook] Exiting... [mpv_thumbnail_script_client_osc] Exiting... ```

Environment

Additional context I'm opening this issue as I'm not sure if the newest commits of mpv have introduced breaking changes (which will require me to add new config settings or will require this script to be updated) or if they have introduced some kind of regression which will require a fix at some point.

bradenhilton commented 2 years ago

I've just manually installed both the previous version 20220619 (mpv commit c1a46ec) and the recently released version 20220629 (mpv commit 8557ba7) and it looks like thumbnailing works as expected, so it's likely 20220626 (mpv commit 3a2838c) had some kind of bug in it.

I'll close for now and keep testing.