当前位置: 首页 > news >正文

mpv 图片轮播:一条命令把文件夹挂上展厅墙

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=inf

mf://是 mpv 的多文件 demuxer(见demux/demux_mf.c),按命名规则把img001.pngimg002.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),仅供参考

http://www.cnnetsun.cn/news/4192561.html

相关文章:

  • 平台视觉API接入实战:从环境配置到批量处理全流程指南
  • Blender 插件三步接入 SadTalker:一键语音驱动人脸动画完整指南
  • C++万能引用与完美转发:从模板类型推断到高效泛型编程
  • HyperLPR3 车牌识别实战:云边端协同架构如何做到 45ms 内出结果
  • 从零搭建ComfyUI工作流:AI绘画到视频生成全流程实战
  • MusicFree歌词自动搜索实战:三步跑通
  • 算法竞赛选手如何打造高通过率实习简历:从解题思维到工程思维的转变
  • jsPDF中文显示速通指南:4步搞定中文字体注册与自动换行
  • tts-server-android:把网络 TTS 音色搬进安卓的朗读与转发方案
  • NBTExplorer 完整上手指南:6 种 Minecraft 数据格式一次搞懂
  • FreeToken:大模型本地推理加速算法解析与实践指南
  • M401a S905L3 刷入 Armbian 完整步骤:把旧电视盒变成 7×24 小时家用 Linux 服务器
  • Lumi源码解析:从WSGI协议到请求分发,看懂迷你框架的核心实现原理
  • SMU Debug Tool 实践指南:Ryzen 逐核调优与底层寄存器读写的完整路径
  • 深入Combo Breaker核心数据结构:区间树与红黑树的工程化实现
  • 3个场景搞定小说创作:提示词库从入门到出活
  • FreeToken技术解析:无损加速本地大模型推理,突破注意力机制内存墙
  • 数学建模论文写作指南:从摘要到附录的高分策略
  • ipydatagrid API速查手册:DataGrid、选择器与渲染器属性完整清单(附示例代码)
  • 如何用手柄玩魔兽世界:WoWmapper 完整配置教程
  • 城通网盘直连解析:用 ctfileGet 拿到一次性下载地址
  • 数据中心AI部署实战:从8MW电力规划到B300服务器容量计算与全链路开发
  • C++模板型别推导:从auto到完美转发的核心机制解析
  • PowerToys FancyZones 窗口管理完全指南:5 分钟掌握免费多屏布局吸附
  • C++模板编程深度解析:从泛型基础到元编程实战
  • NSFC LaTeX模板:格式对齐后还有三条参与路径
  • C++类模板局部特化与默认实参:从通用到定制的进阶指南
  • 美赛B题“扑灭野火”建模全解析:从元胞自动机到遗传算法的动态优化实战
  • 动态多智能体路径规划:从算法原理到工程实践
  • 揭秘laravel-blade-javascript责任链模式:6个Transformer协作转换任意值到JavaScript