PhotoPrism的优点和缺点
前言
优缺点内容会随着日常使用不断更新。
下文中photoprism会简写成pp。
这篇文章中列举的优缺点不涉及界面是否好看之类,喜欢什么ui/ux直接看官网demo即可。
对比产品是immich。
其它类似产品lychee、piwigo、mt-photos、photoview、librephotos等等,懒得试了。
简单总结:稳定好用,缺点很多但还算能接受。建议photoprism作为主相册,immich作为备用相册,俩一起用。
优点
- 稳定。优点等级:✔️✔️✔️✔️✔️
服务稳定运行,这点是日常感知非常不明显,但却是最重要的优点。pp的个人自建版本免费,另外还有多种不同定价的收费服务方案。能出收费商业方案的,相信我,不会有太大的bug。而且我在日常使用的过程中,确实感觉就是pp运行起来【稳如老狗】,不管出现什么错误操作,它都有对应的撤回/修正的方案。
而我在使用immich的短短一个星期里碰到了好几个bug,对比以后,pp的这个优点值五星。
当你碰到服务出了bug,自己debug也毫无头绪,最后只能推倒从来,把80000张照片倒过来倒过去的时候,就会发现这个点的重要性。
- 支持多硬盘。优点等级:✔️✔️✔️✔️✔️
pp服务跑起来以后,常用的会有三个目录:
- originals:存放归档的原图
- storage:存放缓存、缩略图、转码视频、配置文件
- import:存放需要导入到pp的照片和视频
这三个目录都支持自定义路径。比如originals目录指向大容量的机械硬盘来保存原图,方便维护的同时也保障数据安全。比如storage目录指向高速ssd,用来加速浏览性能,避免网页浏览的时候卡顿。比如import目录可以指向存了大量图片的老图库的硬盘,然后在网页端直接一键导入完成数据迁移。pp甚至还支持给照片和视频分别指定路径,可以把照片和视频分开存到两个硬盘。
支持多硬盘还有一个好处,就是存储空间存储空间的最大化利用,这点对比immich只能指定一个目录的时候非常明显。
immich只能指定一个目录,意味着只支持单盘,所以所有数据,无论原图还是缓存、缩略图、转码视频等等,都只能保存在一个硬盘上。一个是不方便维护,二是这导致硬盘空间消耗的特别快。比如2TB的硬盘,原图占了1.5TB,那缓存+缩略图+转码视频可能得占掉500GB,那这时候就不得不考虑买一个更大容量的硬盘,然后迁移数据。而pp因为支持多盘,缓存盘不会去占用原图盘的空间,硬盘空间会更耐用一些。
- 支持多语言。优点等级:✔️
immich不支持多语言(没有中文),pp支持多语言,这就是pp的一个优点。
- 归档照片统一重命名。优点等级:✔️✔️
默认设置下,所有照片视频归档以后都会被按照固定格式统一重命名,yyyymmdd-hhMMss
+ 8位随机字符串 + 文件后缀名。原文件名只会保存在数据库。
这点孰优孰劣看个人喜好,我觉得是个优点。因为原始文件的文件名杂乱无章,统一以后看上去整理利落,就算是一个处女座的强迫症用户都挑不出一点瑕疵。而且yyyymmdd-hhMMss
的前缀也很容易辨认。
pp网页端支持通过原文件名搜索。
如果不喜欢这点的用户记得从设置里关掉这个功能。
- 批量导入很方便。优点等级:✔️✔️✔️✔️
pp有一个专门的import目录是导入用的,配合samba把这个目录设置成smb共享文件夹,直接映射到日常使用的windows电脑或者mac电脑上,只需要把照片视频复制到import文件夹,然后在pp网页点击导入就行了,非常方便。这比起immich需要装npm再用命令来批量导入可方便太多了。
也可以把老的图库直接复制移动到originals目录下,然后在网页端点击索引。这样可以保留老图库的目录结构和文件名。
缺点
- 导入照片耗时漫长。缺点等级:❌❌❌❌❌
如果是通过import目录批量导入图库,那这个导入过程和跑pp的主机cpu性能直接关联。导入照片 + 算法处理照片 + 照片归档,整个流程是同步线性进行的,也即是上传一张照片 + 算法处理照片 + 照片归档,这个流程跑完了,再开始处理下一张照片。
这意味着什么,如果用来跑pp的电脑性能很差(很多人都会拿性能很差的旧电脑用来跑nas然后装很多服务),那算法处理照片这一步会卡很久,因为这一步包含了照片元数据读取、人脸识别、照片主体识别、给照片加上各种标签、gps信息处理等等一长串的任务。如果电脑的cpu性能孱弱,那一张照片就要处理4~5秒钟,如果照片的内容包含了大量的元素,甚至可能要处理10秒钟。这就会导致【导入照片】这个过程变得非常非常非常的漫长,可以算一下如果要导入10000张照片,每张照片耗时5秒钟,cpu是两核两线程的古董,整个过程需要耗时多久,是7个小时!天哪,是7个小时!!!!如果照片数量翻翻,50000张照片,完成导入又需要多久。
这个缺点在2023年简直是难以置信,千万不要用弱鸡cpu来跑pp。
正确的处理方式可以参考immich,导入 + 读取元数据 + 归档 + 图像算法处理,这些任务全部异步处理。限制导入速度的只有你的网络带宽和硬盘读写速度。无论是100张还是1000000张,导入时直接跑满硬盘读写速度,体验就是丝般顺滑。至于读取元数据、生成缩略图、图像算法处理、视频转码,扔到后台去慢慢处理。
- 查看大图界面没有exif侧栏。缺点等级:❌❌❌
大抵现在所有的照片查看软件都支持侧栏显示exif信息,高级一点的甚至还能在侧栏显示gps地图定位信息,比如immich。但很不幸pp不支持,它没有侧栏。
想要在pp里看到exif信息,有两个方法,第一种就是照片墙界面选择卡片布局或者列表布局,会展示一些简略的exif信息,第二种就是在查看大图界面,点击一下【编辑】就会进入照片信息编辑界面,会出现5个标签可以查看照片的各种信息,但很不幸依然没有gps地图定位。
- 没有官方app。缺点等级:❌❌❌❌
官方只提供了网页端服务,pc端、移动端都只能用浏览器访问pp网页。但好消息是pp网页支持pwa,也就是可以把网页“安装”到桌面当成一个app用,使用体验嘛就那样。
- 官方推荐的第三方app收费。缺点等级:❌❌❌❌❌
这点非常下头,非常的下头。官方没app也认了,但官方贴心的给你推荐了一个app,叫photosync,ios/android平台都有,可以实现移动端同步照片到pp。不过天下没有免费的午餐,这app下载免费,但有内置广告,同步照片的功能很不幸需要付费,你可以免费体验7天然后选择花$5.99购买。
- 视频不支持鼠标悬停自动播放。缺点等级:❌
immich支持照片墙浏览时鼠标悬停视频自动播放,pp不支持。在使用体验上影响不大,就是每次看视频需要多点击一下。
- 不支持照片旋转。缺点等级:❌❌❌
很多照片拍摄的时候有的横向有的竖向,我也不要求pp用算法自动纠正,但至少给我一个编辑的入口吧。很不幸,没有旋转照片的功能。
- 归档目录结构无法自定义。缺点等级:❌❌❌
pp的归档目录结构是yyyy/mm
两级,也就是归档的最小时间单位是月,举例就是2023年10月拍的所有照片和视频,无论是10月哪一天拍的,都会归档到2023/10
这个目录下。这个目录结构无法自定义,比如我想改成2023/2023-10/2023-10-14
,很不幸,不支持自定义。
- 归档照片统一重命名。缺点等级:❌❌❌❌❌
默认设置下,pp对归档的文件会统一重命名,格式是yyyymmdd-hhMMss
的前缀+8位随机字符串+文件名后缀,原文件名会存在数据库里。这点对很多人来说是一个致命的缺点,这意味着源文件名的丢失。虽然源文件名存在数据库,pp网页也支持原文件名的搜索,但这导致如果数据库崩了,或者迁移服务、重新部署的时候没备份数据库,那原文件名就永远的丢失了。所以在意这点的用户,务必、千万一定要在开始导入照片之前,在设置里关掉这个功能。
- 对视频的支持不理想。缺点等级:❌❌❌❌
提这个点我需要提前交代下我的硬件和软件配置:
- 硬件:h61 + g630 + 4GB
- 软件:在docker-compose.yml中开启了ffmpeg转码
-
默认不开启视频转码。也就是默认情况下在pp点击视频播放,是把原素材进行串流播放。如果原素材的视频规格比较高,会比较吃硬盘读写速度和网络带宽,还有播放设备的解码能力。
-
在设置中有个选项,【动态预览】,这个功能我一直以为是针对视频的,no,不是。这个功能是指动态生成照片缩略图,也就是导入照片以后连生成缩略图都能省则省,只有在查看或者tensorflow处理照片的时候才生成缩略图。这个功能比较吃硬件性能,官方建议如果硬件比较差的话不要开启。
-
如果要开启视频转码,需要在
docker-compose.yml
配置文件中,放开注释video-transcodeing的那部分内容,并配置好转码视频的分辨率、码率之类。 -
在完成第3点的配置后,pp终于支持视频转码了,但千万不要高兴的太早以为pp会像immich那样立刻开始把图库里的全部视频都转码一遍。no,不会的!pp的逻辑是,点击播放视频,这个时候立刻开始转码,转码完了再开始串流播放。中间这个等候时间,取决于你的主机硬件转码一个视频需要多久,有可能5秒,有可能50秒。像我这样用垃圾cpu当宿主机的话,每次播放视频都要等很久,很久很久。
-
如果想要实现把图库里的所有视频全部都生成一遍转码视频,也可以,需要手动执行命令。官网手册入口:https://docs.photoprism.app/user-guide/organize/video/。
docker compose exec photoprism photoprism convert
-
视频播放界面简陋。和查看照片大图一样的问题,没有侧栏exif,没有gps定位显示,甚至连编辑入口都没有。必须在照片墙页面,选中视频,点击右下角的圈圈,才能找到编辑的入口,然后才能点开看到信息标签页。
-
如果开启了视频转码,那在网页查看视频(播放视频)页面点击下载,下载的视频是转码以后的。想要下载原始视频,必须在照片墙页面用小圈圈选中视频,然后点击右下角的圈圈,选择下载,这个入口下载的才是原视频。
- 首页照片墙页面不支持时间轴模式。缺点等级:❌❌❌
首页照片墙的展示方式,只有三种:卡片、宫格、列表。无论选择哪一种,就是连续平铺下去,没有按日分组的分隔线,而且官方支持的搜索方式也只有【年】和【月】,不支持【日】。
- 不支持多用户。缺点等级:❌❌❌❌
个人自建免费版本的pp不支持多用户,这个功能是收费项目。