为了获得ffmpegthumbnailer
支持嵌入图像元数据的较新版本。我手动编译了(当前)最新2.2.2
版本github。
-m : prefer embedded image metadata over video content
以下是有关我的环境的一些信息
➜ ~ nautilus --version
GNOME nautilus 3.26.4
➜ ~ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
➜ ~ uname -a
Linux Play-PC-VPC 5.0.0-25-generic #26~18.04.1-Ubuntu SMP Thu Aug 1 13:51:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
➜ ~ echo $0
zsh
➜ ~ g++ --version
g++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
以下是我编译/安装它的操作:
sudo apt install build-essential cmake pkg-config
sudo apt install libjpeg-dev libpng-dev zlib1g libavcodec-dev libavformat-dev libavfilter-dev
wget https://github.com/dirkvdb/ffmpegthumbnailer/releases/download/2.2.2/ffmpegthumbnailer-2.2.2.tar.bz2
tar -xvf ffmpegthumbnailer-2.2.2.tar.bz2
cd ffmpegthumbnailer-2.2.2
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GIO=ON -DENABLE_THUMBNAILER=ON .
make
sudo make install
以下是我配置缩略图的方法(sudo vim /usr/share/thumbnailers/ffmpegthumbnailer.thumbnailer
)
[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-msvideo;video/x-flv;video/x-matroska;video/webm;video/mp2t;
附言:请忽略缺失的-m
部分,因为我还没有让它显示任何赞。
还尝试使用以下命令删除缓存
rm -r ~/.cache/thumbnails/
它看起来像这样。
再次强调,我没有totem
安装,因为它是minimal install
这是另一张照片ffmpegthumbnailer
做工作
我对鹦鹉螺的偏爱:
尝试过的故障排除步骤:
1. 弯曲
在进一步搜索时(我记不清我在搜索框中输入了什么,哈哈),复制并粘贴它的内容
Ubuntu 18.04-解决 Nautilus 3.26.4+ 外部缩略图问题
sudo wget -O /usr/local/bin/bwrap https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/nautilus/bwrap
sudo chmod +rx /usr/local/bin/bwrap
rm -r ~/.cache/thumbnails/
sudo reboot
不工作,rm /usr/local/bin/bwrap
......
哦,玩的时候bwarp
,我尝试打印出名为的命令:
/usr/bin/bwrap --ro-bind /usr/local/bin /usr/local/bin bind /home/play_pc/ff_log /home/play_pc/ff_log --ro-bind /etc/alternatives /etc/alternatives --ro-bind /etc/ImageMagick-6 /etc/ImageMagick-6 --ro-bind /var/cache/fontconfig /var/cache/fontconfig --ro-bind /usr /usr --ro-bind /bin /bin --ro-bind /lib64 /lib64 --ro-bind /lib /lib --ro-bind /sbin /sbin --proc /proc --dev /dev --chdir / --setenv GIO_USE_VFS local --unshare-all --die-with-parent --bind /tmp/gnome-desktop-thumbnailer-FL9UJ0 /tmp --ro-bind /home/play_pc/Downloads/wo_feature.mkv /tmp/gnome-desktop-file-to-thumbnail.mkv --seccomp 17 ffmpegthumbnailer -i /tmp/gnome-desktop-file-to-thumbnail.mkv -o /tmp/gnome-desktop-thumbnailer.png -s 256 -f
2. mv ffmpegthumbnailer
所以......这bwarp
件事让我开始思考也许是绑定路径导致了问题,所以我移动了ffmpegthumbnailer
执行文件
➜ ~ which ffmpegthumbnailer
/usr/local/bin/ffmpegthumbnailer
➜ ~ sudo mv /usr/local/bin/ffmpegthumbnailer /usr/bin/ffmpegthumbnailer
➜ ~ which ffmpegthumbnailer
/usr/bin/ffmpegthumbnailer
但...它仍然不起作用
3.检查权限
➜ ~ ls -l /usr/local/bin
total 32
-rwxr-xr-x 1 root root 30576 May 4 20:46 ffmpegthumbnailer
➜ ~ sudo ls -l /usr/share/thumbnailers/
total 20
-rw-r--r-- 1 root root 803 Jun 19 2019 evince.thumbnailer
-rw-r--r-- 1 root root 259 May 4 20:52 ffmpegthumbnailer.thumbnailer
-rw-r--r-- 1 root root 525 Mar 16 2018 gdk-pixbuf-thumbnailer.thumbnailer
-rw-r--r-- 1 root root 213 Mar 13 2018 gnome-font-viewer.thumbnailer
-rw-r--r-- 1 root root 158 Dec 31 2017 librsvg.thumbnailer
➜ ~ sudo killall nautilus
nautilus: no process found
➜ ~ rm -r ~/.cache/thumbnails
➜ ~ mkdir ~/.cache/thumbnails
➜ ~ chown -R play_pc:play_pc ~/.cache/thumbnails
➜ ~ sudo reboot
4. 改用 abs-path
[Thumbnailer Entry]
TryExec=/usr/local/bin/ffmpegthumbnailer
Exec=/usr/local/bin/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-msvideo;video/x-flv;video/x-matroska;video/webm;video/mp2t;
到目前为止,我觉得我已经没什么主意了。有人能告诉我可以尝试什么吗?拜托
答案1
由于某种原因,共享库无法工作/usr/local/lib
。
我可以通过添加几个步骤来显示缩略图。
您的最后一个操作是
sudo make install
继续
sudo ldconfig
sudo mv /usr/local/lib/*ffmpegthumb* /usr/lib
不太确定这是否是这些库的“合法”位置。
我注意到默认库位置在 16.04 上有效,想知道有什么区别。在 20.04 上测试,也需要在那里移动库。
答案2
我的视频的缩略图查看器:
以下是我 (在 18.04 上) 为专有文件类型生成缩略图的概述,我们将其称为 myvideo,视频的子类型。它应该包含您需要的内容 (最后一项)。假设生成缩略图的二进制文件已经构建并称为gnome-thumbnail-myvideo
。
安装:
制作一个 mimetype video/myvideo(myvideo 是 mediatype video 的子类型)
这里解释了如何仅为当前用户制作它
mkdir ~/.local/share/mime/packages
(如果尚不存在)
复制 myvideo.xml 以.local/share/mime/packages
检查它是否可读
sudo update-mime-database ~/.local/share/mime/
在文件管理器中安装 myvideo 的图标
确保图标对所有人都可读:
chmod +r video-myvideo.svg
由于 myvideo 是媒体类型 video 的一部分,它现在应该已经有了这种类型的通用图标
检查图标主题 然后以
gsettings get org.gnome.desktop.interface gtk-theme
find /usr/share/icons | grep video-x-generic
合适的格式将图标的副本放置在相关图标主题(例如 Humanity)中找到 video-x-generic 的所有位置... 检查它是否仍然对所有人都可读(经验表明复制可能会更改权限)。 更新图标缓存:(
sudo update-icon-caches /usr/share/icons/*
sudo gtk-update-icon-cache /usr/share/icons/Humanity
或另一个)准备就绪。将程序 gnome-thumbnail-myvideo 复制到 /usr/local/bin(sudo)
由于缩略图沙盒存在问题(从 18.04 开始),您无法在本地用户文件夹中使用该程序
将其复制到 /usr/local/bin 后,检查它是否可执行
检查它是否可读
将缩略图文件(例如 myvideo.thumbnailer)放在 /usr/share/thumbnailers 或 /usr/local/share/thumbnailers 中
关闭文件管理器
rm ~/.cache/thumbnails 子文件夹下的所有 *.png 文件
重新启动文件管理器,它应该可以工作,或者在注销/登录后
答案3
没有使用 Ubuntu,但是这个建议可能会有帮助。
我实际上在 Arch Linux 中使用来自 AUR 的 Xanmod 内核:
Linux version 5.8.6-xanmod1-1 (makepkg@archlinux) (gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Thu, 10 Sep 2020 00:51:21 +0000
在编译过程中我将其设置CONFIG_USER_NS_UNPRIVILEGED
为n
:
$ zcat /proc/config.gz | grep --color=auto CONFIG_USER_NS_UNPRIVILEGED
# CONFIG_USER_NS_UNPRIVILEGED is not set
正如在建筑维基
注意:在 Linux 强化版上,缩略图生成失败(所有缩略图都进入 ~/.cache/thumbnails/fail/)。这是因为出于安全原因,此内核默认禁用非特权用户命名空间。Nautilus 使用 bwrap(由 bubblewrap 提供)对缩略图进行沙盒处理。您可以决定用 bubblewrap-suid 替换 bubblewrap。
这是我的问题。确保您没有使用CONFIG_USER_NS_UNPRIVILEGED
未设置的 Linux 强化或自定义编译内核。
这可能有点难找到,所以我分享了我的答案。我还针对此问题发布了错误报告!然后我发现这是我的错。