mpv 图片轮播:一条命令把文件夹挂上展厅墙
【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
mpv 是个命令行媒体播放器,这里拿它做图片轮播:整文件夹循环、自定义每张停留时长、按帧序列播放。装好 mpv,五分钟跑通。
项目速览
mpv 是开源的跨平台命令行播放器,由社区维护(mpv 官方开发团队),主程序在 GPLv2+ 下发布,libmpv 库在 LGPLv2.1+ 下发布。它本来放视频,但 demuxer 和图片加载链路过得去,改几个参数就能当幻灯片软件用。对比专门的轮播工具,它少一个图形界面,换来的是不占后台资源、能写进脚本和定时任务。
最小可用命令
mpv --loop-playlist=inf --image-display-duration=5 ~/Pictures/*.jpg--image-display-duration=5控制每张图停留 5 秒(默认就是 5,写上是为了直观);--loop-playlist=inf让播完最后一张后从头再来,而不是退出。
预期效果:窗口里图片一张接一张出现,每 5 秒切换,播完整个文件夹后自动回到第一张,q键退出。
按场景玩进阶
展厅长期挂着
mpv --loop-playlist=inf --shuffle --fullscreen \ --image-display-duration=8 ~/exhibition/*.jpg--shuffle打乱顺序,观众看半小时也不会背出下一张是什么;--fullscreen占满整块屏幕;每张 8 秒适合需要被读进去的海报,节奏慢一点。
会议临时演示
mpv --loop-playlist=3 --image-display-duration=3 ./slides/*.png这里没写inf,直接写数字:--loop-playlist支持 1 到 10000 的整数,表示整份列表循环 3 轮后自动结束。演示不需要无限循环,播完就收,避免讲完人走了屏幕还在闪。
数字命名的序列帧
mpv "mf://./frames/img%03d.png" --mf-fps=24 --loop-playlist=infmf://是 mpv 的多文件 demuxer(见demux/demux_mf.c),按命名规则把img001.png、img002.png……当成一段连续画面加载,--mf-fps=24定帧率。它支持 jpeg、png、tga、sgi 这几类格式,适合放逐帧动画或扫描的连环图。
踩坑与调试
现象:单张图反复出现,后面的图一张没播。 原因:--loop=inf是别名,实际作用于loop-file,只重复当前文件,不作用于整个列表。 解决:换成--loop-playlist=inf,循环的对象才是播放列表。
现象:mf://播到一半自己停了。 原因:mf 加载器按编号顺序找文件,中间缺一张(比如没有img007.png)序列就断了。 解决:把缺失帧补上或重新编号;不方便补的话,直接用 shell 通配符把文件喂给--playlist,不走mf://。
现象:改大了--image-display-duration,画面切换却快了。 原因:单张图的实际停留时间会除以播放速度(源码里是image_display_duration / playback_speed),之前开过快进就会打折。 解决:确认速度是 1(命令里加--speed=1),或按时长/速度反推实际参数。
什么时候该用 / 什么时候别用
| 适合 | 不适合 |
|---|---|
| 展厅、信息屏长期无人值守轮播 | 需要逐张人工翻页、随时口播配合的演讲 |
| 用 cron、脚本批量管理多个播放实例 | 需要淡入淡出等转场动画的幻灯片 |
| 数字命名序列帧的预览回放 | 依赖图形界面拖拽排版的非技术同事 |
收尾
一句话:--loop-playlist=inf加--image-display-duration,mpv 就能把任意图片文件夹变成循环轮播墙。源码可git clone https://gitcode.com/GitHub_Trending/mp/mpv后从DOCS/man/options.rst查全部参数,参数行为以该文档为准。有补充或踩到别的坑,欢迎去项目仓库提 issue。
【免费下载链接】mpv🎥 Command line media player项目地址: https://gitcode.com/GitHub_Trending/mp/mpv
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考