You are not logged in.
Hello,
I have Matroska (MVK) video files that have embedded/attached images as cover.jpg. I'd like tumbler to use these as the thumbnail instead of creating a regular one from the video.
I'm currently using Xubuntu 24.04 and this used to work on an older version but it has stopped working at some point and I'm not sure why.
Here is the video part my tumbler.rc:
[CoverThumbnailer]
Disabled=true
Priority=3
Locations=~/movies
MaxFileSize=0
#APIKey=your-api-key-from-themoviedb.org
# ffmpegthumbnailer plugin
[FfmpegThumbnailer]
Disabled=false
Priority=1
Locations=
MaxFileSize=0
# GStreamer plugin
[GstThumbnailer]
Disabled=false
Priority=2
Locations=
MaxFileSize=0
From what I've found doing a search, this should work using the GStreamer plugin, that's why I've put at priority 2. Yet, it doesn't work, I get a thumbnail generated from a frame of the video. Disabling both the Ffmpeg and the GStreamer thumbnailers still generates thumbnails (I delete the content of ~/.cache/thumbnails and ~/.thumbnails for the tests), so I'm not sure exactly what creates them.
Offline
so I'm not sure exactly what creates them.
If you run tumblerd in debug mode, you'll see which thumbnailer is processing the video files.
However, to get covers, you should probably enable the cover thumbnailer. I don't have any video files with covers embedded to test this though.
Mark solved threads as [SOLVED] to make it easier for others to find solutions.
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
I'm a bit confused about running tumbler in debug mode: do I have to install something specific? When I simply run the command listed on the page, I get the following:
bash: /tumbler-1/tumblerd: Aucun fichier ou dossier de ce nom
(in english, "no such file or directory")
My tumbler version is 4.18.1-1.1build4. I'm not sure what the pkg-config part is supposed to return, running it by itself outputs nothing.
As for the cover thumbnailer, the thumbnail generation worked in the past without it and I don't really want to download the covers on the fly, I already have them in the files.
EDIT: ok, I figured it out, pkg-config is just supposed to find the path to tumbler-1. On my system, it seems to be the following:
G_MESSAGES_PREFIXED= G_MESSAGES_DEBUG=all /usr/lib/x86_64-linux-gnu/tumbler-1/tumblerd
So, if I run it, I get the following output when accessing a dir with a MKV file that has an embedded cover:
GLib-GIO-DEBUG: 00:16:22.117: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
tumbler-ffmpeg-thumbnailer-DEBUG: 00:16:22.197: Initializing the Tumbler ffmpeg video thumbnailer plugin
tumbler-odf-thumbnailer-DEBUG: 00:16:22.197: Initializing the Tumbler ODF Thumbnailer plugin
tumbler-gepub-thumbnailer-DEBUG: 00:16:22.252: Initializing the Tumbler Gepub Thumbnailer plugin
tumbler-font-thumbnailer-DEBUG: 00:16:22.252: Initializing the Tumbler Font Thumbnailer plugin
tumbler-jpeg-thumbnailer-DEBUG: 00:16:22.252: Initializing the Tumbler JPEG Thumbnailer plugin
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.253: Initializing the Tumbler Desktop Thumbnailer plugin
tumbler-gst-thumbnailer-DEBUG: 00:16:22.253: Initializing the Tumbler GStreamer Thumbnailer plugin
tumbler-raw-thumbnailer-DEBUG: 00:16:22.253: Initializing the Tumbler RAW Thumbnailer plugin
tumbler-cover-thumbnailer-DEBUG: 00:16:22.254: Initializing the Tumbler Cover Thumbnailer plugin
tumbler-pixbuf-thumbnailer-DEBUG: 00:16:22.254: Initializing the Tumbler Pixbuf Thumbnailer plugin
tumbler-poppler-thumbnailer-DEBUG: 00:16:22.258: Initializing the Tumbler Poppler PDF/PS Thumbnailer plugin
tumbler-DEBUG: 00:16:22.258: Thumbnailer "CoverThumbnailer" disabled in config file
tumbler-cover-thumbnailer-DEBUG: 00:16:22.258: Shutting down the Tumbler Cover Thumbnailer plugin
GLib-GIO-DEBUG: 00:16:22.261: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
tumbler-poppler-thumbnailer-DEBUG: 00:16:22.261: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-poppler-thumbnailer-DEBUG: 00:16:22.261: Supported mime types:
application/pdf
application/postscript
tumbler-pixbuf-thumbnailer-DEBUG: 00:16:22.261: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-pixbuf-thumbnailer-DEBUG: 00:16:22.261: Supported mime types:
image/x-win-bitmap
image/x-bmp
image/x-ico
image/tiff
image/png
image/x-xpixmap
image/icon
image/x-MS-bmp
image/x-xbitmap
image/gif
text/ico
image/svg
image/svg+xml-compressed
image/qtif
image/vnd.microsoft.icon
image/x-portable-graymap
image/x-icon
image/x-icns
image/x-portable-anymap
text/xml-svg
image/vnd.adobe.svg+xml
image/x-tga
image/x-portable-pixmap
image/jpeg
application/ico
image/bmp
application/x-navi-animation
image/svg+xml
image/ico
image/x-portable-bitmap
image/x-quicktime
image/svg-xml
image/x-wmf
tumbler-raw-thumbnailer-DEBUG: 00:16:22.262: Supported URI schemes:
file
tumbler-raw-thumbnailer-DEBUG: 00:16:22.262: Supported mime types:
image/x-adobe-dng
image/x-canon-cr2
image/x-canon-crw
image/x-epson-erf
image/x-nikon-nef
image/x-nikon-nrw
image/x-olympus-orf
image/x-panasonic-raw
image/x-panasonic-rw2
image/x-pentax-pef
image/x-sony-arw
image/x-minolta-mrw
image/x-fuji-raf
tumbler-gst-thumbnailer-DEBUG: 00:16:22.276: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-gst-thumbnailer-DEBUG: 00:16:22.276: Supported mime types:
application/mxf
application/ogg
application/ram
application/sdp
application/smil
application/smil+xml
application/vnd.apple.mpegurl
application/vnd.ms-wpl
application/vnd.rn-realmedia
application/x-extension-m4a
application/x-extension-mp4
application/x-flac
application/x-flash-video
application/x-matroska
application/x-netshow-channel
application/x-ogg
application/x-quicktime-media-link
application/x-quicktimeplayer
application/x-shorten
application/x-smil
application/xspf+xml
audio/3gpp
audio/ac3
audio/AMR
audio/AMR-WB
audio/basic
audio/flac
audio/midi
audio/mp2
audio/mp4
audio/mpeg
audio/mpegurl
audio/ogg
audio/prs.sid
audio/vnd.rn-realaudio
audio/x-aiff
audio/x-ape
audio/x-flac
audio/x-gsm
audio/x-it
audio/x-m4a
audio/x-matroska
audio/x-mod
audio/x-mp3
audio/x-mpeg
audio/x-mpegurl
audio/x-ms-asf
audio/x-ms-asx
audio/x-ms-wax
audio/x-ms-wma
audio/x-musepack
audio/x-pn-aiff
audio/x-pn-au
audio/x-pn-realaudio
audio/x-pn-realaudio-plugin
audio/x-pn-wav
audio/x-pn-windows-acm
audio/x-realaudio
audio/x-real-audio
audio/x-s3m
audio/x-sbc
audio/x-scpls
audio/x-speex
audio/x-stm
audio/x-tta
audio/x-wav
audio/x-wavpack
audio/x-vorbis
audio/x-vorbis+ogg
audio/x-xm
image/vnd.rn-realpix
image/x-pict
misc/ultravox
text/google-video-pointer
text/x-google-video-pointer
video/3gp
video/3gpp
video/dv
video/divx
video/fli
video/flv
video/mp2t
video/mp4
video/mp4v-es
video/mpeg
video/msvideo
video/ogg
video/quicktime
video/vivo
video/vnd.divx
video/vnd.mpegurl
video/vnd.rn-realvideo
video/vnd.vivo
video/webm
video/x-anim
video/x-avi
video/x-flc
video/x-fli
video/x-flic
video/x-flv
video/x-m4v
video/x-matroska
video/x-mpeg
video/x-mpeg2
video/x-ms-asf
video/x-ms-asx
video/x-msvideo
video/x-ms-wm
video/x-ms-wmv
video/x-ms-wmx
video/x-ms-wvx
video/x-nsv
video/x-ogm+ogg
video/x-theora+ogg
video/x-totem-stream
x-content/video-dvd
x-content/video-vcd
x-content/video-svcd
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.277: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.277: Registered thumbnailer '/home/terzag/.local/share/thumbnailers/folder.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.277: Supported mime types:
inode/directory
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.277: Registered thumbnailer '/usr/share/thumbnailers/atril.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.277: Supported mime types:
application/pdf
application/x-bzpdf
application/x-gzpdf
application/x-xzpdf
application/postscript
application/x-bzpostscript
application/x-gzpostscript
image/x-eps
image/x-bzeps
image/x-gzeps
application/x-dvi
application/x-bzdvi
application/x-gzdvi
image/vnd.djvu
image/vnd.djvu+multipage
image/tiff
application/x-cbr
application/x-cbz
application/x-cb7
application/x-cbt
application/vnd.comicbook+zip
application/vnd-comicbook.rar
image/*
application/oxps
application/vnd.ms-xpsdocument
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Registered thumbnailer '/usr/share/thumbnailers/ffmpegthumbnailer.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Supported mime types:
video/jpeg
video/mp4
video/mpeg
video/quicktime
video/x-ms-asf
video/x-ms-wm
video/x-ms-wmv
video/x-ms-asx
video/x-ms-wmx
video/x-ms-wvx
video/x-msvideo
video/x-flv
video/x-matroska
application/x-matroska
application/mxf
video/3gp
video/3gpp
video/dv
video/divx
video/fli
video/flv
video/mp2t
video/mp4v-es
video/msvideo
video/ogg
video/vivo
video/vnd.avi
video/vnd.divx
video/vnd.mpegurl
video/vnd.rn-realvideo
application/vnd.rn-realmedia
video/vnd.vivo
video/webm
video/x-anim
video/x-avi
video/x-flc
video/x-fli
video/x-flic
video/x-m4v
video/x-mpeg
video/x-mpeg2
video/x-nsv
video/x-ogm+ogg
video/x-theora+ogg
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Registered thumbnailer '/usr/share/thumbnailers/gdk-pixbuf-thumbnailer.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Supported mime types:
image/png
image/jpeg
image/bmp
image/x-bmp
image/x-MS-bmp
image/gif
image/x-icon
image/x-ico
image/x-win-bitmap
image/vnd.microsoft.icon
application/ico
image/ico
image/icon
text/ico
application/x-navi-animation
image/x-portable-anymap
image/x-portable-bitmap
image/x-portable-graymap
image/x-portable-pixmap
image/tiff
image/x-xpixmap
image/x-xbitmap
image/x-tga
image/x-icns
image/x-quicktime
image/qtif
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Registered thumbnailer '/usr/share/thumbnailers/librsvg.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Supported mime types:
image/svg+xml
image/svg+xml-compressed
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Registered thumbnailer '/usr/share/thumbnailers/epub.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Supported mime types:
application/epub+zip
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Registered thumbnailer '/usr/share/thumbnailers/gnome-font-viewer.thumbnailer'
tumbler-desktop-thumbnailer-DEBUG: 00:16:22.278: Supported mime types:
application/x-font-ttf
application/x-font-pcf
application/x-font-type1
application/x-font-otf
font/ttf
font/otf
font/woff
font/collection
tumbler-jpeg-thumbnailer-DEBUG: 00:16:22.279: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-jpeg-thumbnailer-DEBUG: 00:16:22.279: Supported mime types:
image/jpeg
tumbler-font-thumbnailer-DEBUG: 00:16:22.279: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-font-thumbnailer-DEBUG: 00:16:22.279: Supported mime types:
application/x-font-otf
application/x-font-pcf
application/x-font-ttf
application/x-font-type1
tumbler-gepub-thumbnailer-DEBUG: 00:16:22.280: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-gepub-thumbnailer-DEBUG: 00:16:22.280: Supported mime types:
application/epub
application/epub+zip
tumbler-odf-thumbnailer-DEBUG: 00:16:22.280: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-odf-thumbnailer-DEBUG: 00:16:22.280: Supported mime types:
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.oasis.opendocument.presentation-template
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.spreadsheet-template
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.text-template
application/vnd.oasis.opendocument.text-master
application/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.graphics-template
application/vnd.oasis.opendocument.graphics
application/vnd.oasis.opendocument.chart
application/vnd.oasis.opendocument.image
application/vnd.oasis.opendocument.formula
application/vnd.sun.xml.impress.template
application/vnd.sun.xml.impress.template
application/vnd.sun.xml.impress
application/vnd.sun.xml.calc.template
application/vnd.sun.xml.calc
application/vnd.sun.xml.writer.global
application/vnd.sun.xml.writer.template
application/vnd.sun.xml.writer
application/vnd.sun.xml.draw.template
application/vnd.sun.xml.draw
application/vnd.sun.xml.math
image/openraster
tumbler-ffmpeg-thumbnailer-DEBUG: 00:16:22.280: Supported URI schemes:
file
admin
davs+sd
dav+sd
ftpis
mtp
onedrive
afc
ftp
burn
afp
google-drive
davs
dav
smb
dns-sd
nfs
gphoto2
archive
sftp
ssh
recent
trash
wsdd
ftps
resource
tumbler-ffmpeg-thumbnailer-DEBUG: 00:16:22.280: Supported mime types:
video/jpeg
video/mp4
video/mp2t
video/mpeg
video/quicktime
video/x-ms-asf
video/x-ms-wm
video/x-ms-wmv
video/x-msvideo
video/x-flv
application/x-flash-video
application/vnd.rn-realmedia
video/3gpp
video/x-matroska
video/ogg
video/webm
tumbler-xdg-cache-DEBUG: 00:16:22.285: Initializing the Tumbler XDG cache plugin
tumblerd-DEBUG: 00:16:22.309: Ready to handle requests
tumblerd-DEBUG: 00:16:28.896: Removing files from cache for deleted source files
tumblerd-DEBUG: 00:16:28.896: URIs:
file:///home/terzag/.cache/thumbnails/normal/a1125284004d7651525544a7a5af45f1.png
file:///home/terzag/.cache/thumbnails/normal/42e92ea3e316ad9c093380e47813dbe9.png
file:///home/terzag/.cache/thumbnails/normal
tumblerd-DEBUG: 00:16:30.882: Handling request 1
tumblerd-DEBUG: 00:16:30.882: URIs | Mime types:
file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv | video/x-matroska
tumblerd-DEBUG: 00:16:30.882: Starting job 1
tumbler-gst-thumbnailer-DEBUG: 00:16:30.882: Handling URI 'file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv'
tumblerd-DEBUG: 00:16:30.883: Failed attempt for job 1, URI 'file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv': Code 2, message: Impossible de générer la miniature à partir du contenu du fichier
tumbler-ffmpeg-thumbnailer-DEBUG: 00:16:30.883: Handling URI 'file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv'
tumblerd-DEBUG: 00:16:30.945: Handling request 2
tumblerd-DEBUG: 00:16:30.945: URIs | Mime types:
file:///home/terzag/.cache/thumbnails/normal | inode/directory
tumblerd-DEBUG: 00:16:30.945: Starting job 2
tumbler-desktop-thumbnailer-DEBUG: 00:16:30.945: 'Exec=sh -c 'folder-thumbnailer "$@"' _ %s %i %o %u': Handling URI 'file:///home/terzag/.cache/thumbnails/normal'
tumblerd-DEBUG: 00:16:30.952: Ready signal for job 1
tumblerd-DEBUG: 00:16:30.953: URIs:
file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv
tumblerd-DEBUG: 00:16:30.953: Finishing job 1
tumblerd-DEBUG: 00:16:30.964: Error signal for job 2: Code 8, message: (domain gdk-pixbuf-error-quark, code 3) Format d’image non reconnu
tumblerd-DEBUG: 00:16:30.964: URIs:
file:///home/terzag/.cache/thumbnails/normal
tumblerd-DEBUG: 00:16:30.964: Finishing job 2
From what I seem to understand, gst-thumbnailer tries to generate the thumbnail but fails ("code 2: unable to generate a thumbnail from the file's content") and it then goes to ffmpeg-thumbnailer that creates one?
If I disable the FFMpeg thumbnailer in tumbler.rc, I get the following message:
tumbler-desktop-thumbnailer-DEBUG: 00:25:08.306: 'Exec=ffmpegthumbnailer -i %i -o %o -s %s -f': Handling URI 'file:///media/terzag/DataVol1/Videos/Musique/Nine%20Inch%20Nails/Broken/Nine%20Inch%20Nails%20-%201993%20-%20Broken%20Movie.mkv'
So in the end, it falls back to FFMpeg again but with a different generic thumbnailer?
Last edited by abelthorne (2025-03-30 22:27:03)
Offline
Interesting.
First of all, see if this is related?
It looks like the desktop thumbnailer is picking up ffmpegthumbnailer even though its disabled. Perhaps a new bug report at the link above would help.
Mark solved threads as [SOLVED] to make it easier for others to find solutions.
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
First things first: as I mentioned, when the dedicated FFMPeg thumbnailer is disabled, it seems that tumbler falls back to the desktop thumbnailer which, if I understand the doc correctly, is the one that uses the various thumbnailers in /usr/share/thumbnailers (or local equivalent). I have a ffmpegthumbnailer.thumbnailer there that contains the following:
[Thumbnailer Entry]
TryExec=ffmpegthumbnailer
Exec=ffmpegthumbnailer -i %i -o %o -s %s -f
MimeType=video/jpeg;video/mp4;video/mpeg;video/quicktime;video/x-ms-asf;video/x-ms-wm;video/x-ms-wmv;video/x-ms-asx;video/x-ms-wmx;video/x-ms-wvx;video/x-msvideo;video/x-flv;video/x-matroska;application/x-matroska;application/mxf;video/3gp;video/3gpp;video/dv;video/divx;video/fli;video/flv;video/mp2t;video/mp4v-es;video/msvideo;video/ogg;video/vivo;video/vnd.avi;video/vnd.divx;video/vnd.mpegurl;video/vnd.rn-realvideo;application/vnd.rn-realmedia;video/vnd.vivo;video/webm;video/x-anim;video/x-avi;video/x-flc;video/x-fli;video/x-flic;video/x-m4v;video/x-mpeg;video/x-mpeg2;video/x-nsv;video/x-ogm+ogg;video/x-theora+ogg
It seems to be installed by the ffmpegthumbnailer package. Not sure why I have it installed, maybe I did install it manually at some point when I noticed that I didn't get covers generated for MKV anymore (to check if it changed things) or it was preinstalled by Xubuntu. I don't see it as a dependency or recommended package for a few packages I checked (the tumbler ones and the xubuntu-desktop metapackage) so I guess it's not related to Xfce/tumbler and probably not installed by Xubuntu originally?
If I uninstall it and delete the thumbnails while having the dedicated thumbnailer disabled, I don't have a thumbnail generated at all. So that at least explains why I had that fallback.
Uninstalling it doesn't fix the original issue, though, I still don't have thumbnails generated from the cover.jpg embedded in MKV files.
Regarding the bug you linked, the test file with AAC produces a standard thumbnail (generated from one of the video's frames) while the Opus and Vorbis ones have no thumbnail created at all. No cover in any case... which seems normal as none of these files have actual images embedded in them (I've checked with MKVToolNix and VLC), the cover they show is just the video track. So, I'm a bit confused as to what the report is about, if it's thumbnail generation in general for MKV with specific audio formats or for embedded cover art (as attachments, which is what I use and trying to get a thumbnail from).
My MKV files mostly have AAC or AC3 for the audio tracks.
Last edited by abelthorne (2025-03-31 07:52:53)
Offline
EDIT: ok, I figured it out, pkg-config is just supposed to find the path to tumbler-1.
It doesn't find it for you? i.e.
pkg-config --variable=libdir tumbler-1
returns nothing?
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
It doesn't find it for you? i.e.
pkg-config --variable=libdir tumbler-1
returns nothing?
Correct, no output at all. My assumption was that this is distro-specific and the command on the debug mode page works on Fedora or Arch or whatever but not Ubuntu, but given that you're surprised I assume that it's not normal?
Offline
Ah I understand, the pkg-config files are in the *-dev packages on ubuntu (and all debian based distros I guess). It's a pain...
Added later 25 min 52 s:
I modified the doc. Regarding the original problem here, I think the fact that it worked before and doesn't work now is due to a gstreamer update that broke this functionality. There's nothing in tumbler that directly retrieves thumbnails from video or audio files, it's the plugins that do it, via external APIs. And the behavior described above is the expected behavior, so I don't see a bug here.
Maybe you can try running gst-launch-1.0 as described in https://gitlab.freedesktop.org/gstreame … te_1973727, since apparently it works, and make a custom thumbnailer from that: https://docs.xfce.org/xfce/tumbler/avai … umbnailers
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
And the behavior described above is the expected behavior, so I don't see a bug here.
Well, I guess it depends if the functionality broke in GStreamer upstream, in which case it's not a tumbler bug, or if that's the GST thumbnailer provided by tumbler that broke (because the API for GStreamer changed or something), and if so I guess that's a tumbler bug? Not sure how to check at which point it fails in more details. Do you have more infos about a specific GStreamer update that broke this?
I'll take a look at gst-launch but a quick test with the command in the bug report you linked just extracts a frame from the video to generate a thumbnail, which is what the FFMpeg thumbnailer currently does by itself properly, except that it also works with the broken opus/vorbis files from the other bug report, so I guess that it mostly addresses that specific issue. It does not seem to extract the embedded cover.jpg to generate the thumbnail (which is what I'm trying to do).
Assuming that the functionality broke or was removed in GStreamer, I guess an option would be to make a custom thumbnailer using mkvextract. I'll see if I can make something work. EDIT: this might me more complicated than I thought as attachments can be of several types (not only images), so the script would have to find all of them, filter the ones that are images, check if there's one that fits the cover names and so on...
Last edited by abelthorne (2025-03-31 10:44:30)
Offline
Well, I guess it depends if the functionality broke in GStreamer upstream, in which case it's not a tumbler bug, or if that's the GST thumbnailer provided by tumbler that broke (because the API for GStreamer changed or something), and if so I guess that's a tumbler bug?
This plugin has essentially not changed since xfce 4.16, and the gstreamer API doesn't change its behavior without a major version change, so it's very unlikely that the change comes from tumbler (or its plugins).
Not sure how to check at which point it fails in more details. Do you have more infos about a specific GStreamer update that broke this?
No, really none, sorry.
Assuming that the functionality broke or was removed in GStreamer, I guess an option would be to make a custom thumbnailer using mkvextract
I think a custom thumbnailer would be best in this case, indeed.
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
I haven't had time to look into making a custom thumbnailer yet (and won't probably before a while) but I've just noticed something by accident: if I rename a Mastroska file by removing its extension (.mkv) and it doesn't already have a thumbnail in the cache, I see tumbler creating one with the embedded cover for a split second before it is replaced by a frame of the video.
So, it seems that Matroska thumbnailing for embedded cover images still works but there's another thumbnailer (FFMpeg?) that supercedes it.
Probably a config issue and/or some packages that shouldn't be there but I'm a bit confused regarding the previous tests.
Offline
I suspect it's more something cached in thunar, or a rename request that precedes a thumbnail creation request. You'd have to look at the debug logs again, as above, to find out exactly what tumblerd is doing, but a successful thumbnail creation can't override another one that has already succeeded for a plugin with a higher priority: tumblerd stops at the first successful thumbnail creation, respecting the order of priority defined in the tumbler.rc config file (and the order of priority of XDG_DATA_DIRS).
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
So, I did some tests:
First, I make sure to delete the thumbnails cache and go into a dir where there is a single Matroska file. A video frame thumbnail is regenerated in the thumbnails cache (normal/5d92d855c418af72a2ff7686de3b42fc.png).
1) I kill Tumbler, restart in debug mode and refresh the window:
tumblerd-DEBUG: 09:55:41.656: Handling request 1
tumblerd-DEBUG: 09:55:41.656: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 09:55:41.656: Starting job 1
tumblerd-DEBUG: 09:55:41.657: Ready signal for job 1
tumblerd-DEBUG: 09:55:41.657: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:55:41.657: Finishing job 1
Tumbler does nothing as the file hasn't changed. So far, Nothing unexpected.
2) I rename the file to remove the .mkv extension, Tumblr automatically recreates a video frame thumbnail for the new file (normal/5da29e007ae41de40cc406612c5f9d73.png):
tumblerd-DEBUG: 09:56:13.391: Handling request 2
tumblerd-DEBUG: 09:56:13.391: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | application/x-matroska
tumblerd-DEBUG: 09:56:13.391: Starting job 2
tumbler-gst-thumbnailer-DEBUG: 09:56:13.392: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)'
tumblerd-DEBUG: 09:56:13.409: Dequeuing files for job 2
tumblerd-DEBUG: 09:56:13.432: Handling request 3
tumblerd-DEBUG: 09:56:13.432: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | application/x-matroska
tumblerd-DEBUG: 09:56:13.432: Starting job 3
tumbler-gst-thumbnailer-DEBUG: 09:56:13.432: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)'
tumblerd-DEBUG: 09:56:13.545: Finishing job 2
tumblerd-DEBUG: 09:56:13.604: Ready signal for job 3
tumblerd-DEBUG: 09:56:13.604: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
tumblerd-DEBUG: 09:56:13.604: Finishing job 3
tumblerd-DEBUG: 09:56:13.645: Moving files in cache for moved source files
tumblerd-DEBUG: 09:56:13.645: From URIs | To URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
tumblerd-DEBUG: 09:56:13.651: Handling request 4
tumblerd-DEBUG: 09:56:13.651: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | application/x-matroska
tumblerd-DEBUG: 09:56:13.652: Starting job 4
tumblerd-DEBUG: 09:56:13.652: Ready signal for job 4
tumblerd-DEBUG: 09:56:13.652: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
tumblerd-DEBUG: 09:56:13.652: Finishing job 4
tumblerd-DEBUG: 09:56:13.655: Handling request 5
tumblerd-DEBUG: 09:56:13.655: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | application/x-matroska
tumblerd-DEBUG: 09:56:13.655: Starting job 5
tumblerd-DEBUG: 09:56:13.655: Ready signal for job 5
tumblerd-DEBUG: 09:56:13.655: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
tumblerd-DEBUG: 09:56:13.655: Finishing job 5
Thumbnail is still the same, although it seems to be using only the GST thumbnailer and twice in a single request for some reason.
3) I delete the thumbnails cache ("normal" and "large" subdirs in ~/.cache/thumbnails) and refresh the window:
tumblerd-DEBUG: 09:58:35.726: Handling request 6
tumblerd-DEBUG: 09:58:35.726: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | application/x-matroska
tumblerd-DEBUG: 09:58:35.726: Starting job 6
tumbler-gst-thumbnailer-DEBUG: 09:58:35.727: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)'
tumblerd-DEBUG: 09:58:35.855: Ready signal for job 6
tumblerd-DEBUG: 09:58:35.855: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007)
tumblerd-DEBUG: 09:58:35.855: Finishing job 6
The thumbnail is now the proper one, generated from the embedded cover.jpg. GST again but only once.
4) I rename the file to add the .mkv extension back and refresh the window:
tumblerd-DEBUG: 09:59:35.855: Handling request 7
tumblerd-DEBUG: 09:59:35.855: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 09:59:35.855: Starting job 7
tumbler-gst-thumbnailer-DEBUG: 09:59:35.856: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 09:59:35.857: Failed attempt for job 7, URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv': Code 2, message: Impossible de générer la miniature à partir du contenu du fichier
tumbler-ffmpeg-thumbnailer-DEBUG: 09:59:35.857: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 09:59:35.876: Dequeuing files for job 7
tumblerd-DEBUG: 09:59:35.900: Handling request 8
tumblerd-DEBUG: 09:59:35.900: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 09:59:35.900: Starting job 8
tumbler-gst-thumbnailer-DEBUG: 09:59:35.900: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 09:59:35.901: Failed attempt for job 8, URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv': Code 2, message: Impossible de générer la miniature à partir du contenu du fichier
tumbler-ffmpeg-thumbnailer-DEBUG: 09:59:35.901: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 09:59:35.936: Ready signal for job 7
tumblerd-DEBUG: 09:59:35.936: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:35.936: Ready signal for job 8
tumblerd-DEBUG: 09:59:35.936: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:35.936: Finishing job 7
tumblerd-DEBUG: 09:59:35.958: Ready signal for job 8
tumblerd-DEBUG: 09:59:35.958: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:35.958: Finishing job 8
tumblerd-DEBUG: 09:59:36.110: Moving files in cache for moved source files
tumblerd-DEBUG: 09:59:36.110: From URIs | To URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007) | file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:36.119: Handling request 9
tumblerd-DEBUG: 09:59:36.119: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 09:59:36.119: Starting job 9
tumblerd-DEBUG: 09:59:36.119: Ready signal for job 9
tumblerd-DEBUG: 09:59:36.119: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:36.119: Finishing job 9
tumblerd-DEBUG: 09:59:36.125: Handling request 10
tumblerd-DEBUG: 09:59:36.125: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 09:59:36.125: Starting job 10
tumblerd-DEBUG: 09:59:36.125: Ready signal for job 10
tumblerd-DEBUG: 09:59:36.125: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 09:59:36.125: Finishing job 10
No change to the thumbnail, still the right one but regenerated as 5d92d855c418af72a2ff7686de3b42fc.png. But there is some weird stuff happening: GST tries to generate the thumbnail but fails with a code 2 error ("unable to generate the thumbnail from the content of the file"); then, FFMpeg does it, then GST fails again, then FFMpeg does it again (all of this in job 7).
5) I delete the cache again and refresh the window:
tumblerd-DEBUG: 10:01:28.957: Handling request 11
tumblerd-DEBUG: 10:01:28.958: URIs | Mime types:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv | video/x-matroska
tumblerd-DEBUG: 10:01:28.958: Starting job 11
tumbler-gst-thumbnailer-DEBUG: 10:01:28.958: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 10:01:28.958: Failed attempt for job 11, URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv': Code 2, message: Impossible de générer la miniature à partir du contenu du fichier
tumbler-ffmpeg-thumbnailer-DEBUG: 10:01:28.958: Handling URI 'file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv'
tumblerd-DEBUG: 10:01:29.011: Ready signal for job 11
tumblerd-DEBUG: 10:01:29.011: URIs:
file:///mnt/datavol1/Videos/Documentaires/Musique/Joy%20Division%20&%20New%20Order/Joy%20Division%20(2007).mkv
tumblerd-DEBUG: 10:01:29.011: Finishing job 11
Now back to a video frame thumbnail instead of being made from the embedded cover.jpg. Error from GST, thumb created by FFMpeg.
Note that during some of my tests (and the accidental renaming of a file that originally showed me that I could still get the right thumbnail), the proper thumbnail is generated at step 2 (just after renaming) instead of 3 (after deleting the cache). I'm not sure if there's some randomness in this or if I messed up something during my tests. The process I've reported here has been tested twice in a row.
Just to be sure about something: Tumbler uses the thumbnails in ~/.cache/thumbnails only, right? (and maybe ~/.thumbnails but it's symlinked to the other dir.) It doesn't have it own cache dir somewhere?
Another thing I plan to do when I have a bit of time is install a fresh Xubuntu in a VM to check what packages related to thumbnailing/Tumbler are installed originally and see if I can reproduce the same behavior I have on my desktop.
Last edited by abelthorne (2025-04-29 08:24:02)
Offline
Ok so I think there's nothing wrong with tumbler itself, but there does seem to be a bug with gstreamer, which behaves differently depending on whether you pass it a filename with or without an 'mkv' extension. This point needs to be reproduced with a shareable test video file and minimal test code reproducing tumbler's call to the gstreamer API, in order to produce a bug report that can be used upstream: https://gitlab.freedesktop.org/gstreamer
If you can share such a video somewhere and I can reproduce the problem, I can take care of making this report with the appropriate piece of code.
As for the rest, thunar seems to send rather disorganized requests: it asks to create a thumbnail for a file that has just been renamed, before sending a rename request that overwrites the previous thumbnail creation. This is what I assumed in #12, and explains why you sometimes see the "right thumbnail" being replaced by the "wrong one". In fact, the reverse is also true, although you may not have time to see it: in the penultimate logs above where the gst plugin fails, the wrong thumbnail is created before being replaced by the right one by renaming.
Similarly, thunar sometimes sends an undo request before resending the same request, but this isn't a big deal (and has probably changed in current versions 4.20.x/4.21.x). If it weren't for the gstreamer bug, you wouldn't notice. That's the main problem.
Added later 02 min 45 s:
Just to be sure about something: Tumbler uses the thumbnails in ~/.cache/thumbnails only, right? (and maybe ~/.thumbnails but it's symlinked to the other dir.) It doesn't have it own cache dir somewhere?
No, it only uses the locations specified in the freedesktop specification: https://specifications.freedesktop.org/ … ctory.html
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
I've made a quick video as a Matroska file with an embedded cover.jpg. You can download it from there if you want to test stuff: https://transfert.free.fr/nCST4ka (link should be valid for 30 days).
Offline
Ok thanks, I can reproduce the issue, I'll look into it later.
Added later 3 h 46 min 37 s:
So in fact it's a bug (a priori) in tumbler or glib: https://gitlab.gnome.org/GNOME/glib/-/issues/3679
I'd forgotten that we'd added a mime-type comparison following a vulnerability report:
https://gitlab.xfce.org/xfce/tumbler/-/issues/65
https://gitlab.xfce.org/xfce/tumbler/-/ … fdacb2daa5
I'll probably add an exception for that in tumbler eventually, but I'm waiting a bit to see what the feedback is upstream.
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
Thanks for the heads up. I didn't notice at first that there were indeed two different MIME types mentioned in the logs during my tests.
Offline
I didn't notice at first that there were indeed two different MIME types mentioned in the logs during my tests.
Me neither! I only found out when I added traces around the glib functions to see where the problem was coming from. I pushed a patch following the advice given upstream: https://gitlab.xfce.org/xfce/tumbler/-/ … 2e708a2b06
I've also created a 4.20 branch, but I've no idea when a 4.20.1 version will be released...
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
Would it be possible to apply the patch to my current version of tumbler (4.18.1) and only compile the GST plugin? I have basic knowledge in compiling stuff but not much in applying patches, compiling parts of an app like a specific plugin...
Offline
It's not easy to build just the plugin, and you'll have to configure the whole project anyway, so you'll need all the dependencies (-dev packages on ubuntu). So the easiest thing is probably to build the whole project with the default options (following the instructions in README.md), which will install it in /usr/local, then copy /usr/local/lib/tumbler-1/plugins/tumbler-gst-thumbnailer.so into /usr/lib/tumbler-1/plugins (or the appropriate libdir in your case).
As for applying the patch, perhaps the easiest thing to do is to download the 4.18.x archive (https://archive.xfce.org/src/xfce/tumbler/4.18/), and apply it by hand in plugins/gst-thumbnailer/gst-thumbnailer.c, since the modification only takes a few lines. Because if you copy the file retrieved from gitlab I don't think it will compile (because of other changes that took place in between), and if you build from a clone of the repository you'll need xfce4-dev-tools and maybe other dependencies as well.
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
Yeah, that's what figured and I'm currently trying to do it. But when I try the ./configure, I'm currently at the following state:
Plugins:
* GdkPixbuf thumbnailer plugin: yes
* Cover thumbnailer plugin: yes
* FreeType font thumbnailer plugin: no
* JPEG thumbnailer plugin with EXIF support: yes
* Video thumbnailer plugin using ffmpegthumbnailer: no
* Video thumbnailer plugin using GStreamer: no
* ODF thumbnailer plugin using libgsf: no
* PDF/PS thumbnailer plugin using poppler: no
* RAW thumbnailer plugin using libopenraw: no
* Freedesktop.org cache plugin: yes
* Loading thumbnailers from .thumbnailer files: yes
* EPUB thumbnailer using libgepub: no
I'm not sure which -dev package I need to install for the GST plugin. Any idea? EDIT: tried libgstreamer1.0-dev but no luck.
Last edited by abelthorne (2025-05-06 10:29:28)
Offline
I'd say the gstreamer deps listed here, with -dev suffix: https://packages.ubuntu.com/noble/tumbler
Xfce maintainer: https://gravatar.com/gaelbonithon
Offline
Oh yeah, didn't think about checking the dependencies there. It was simply libgstreamer-plugins-base1.0-dev missing.
So, it compiled fine, I replaced the original plugin and it seems to work, I get thumbnails from the embedded cover.jpg of my Mkv files. Cool.
Thanks a lot for the fix and the help!
Offline
[ Generated in 0.017 seconds, 7 queries executed - Memory usage: 833.18 KiB (Peak: 914.02 KiB) ]