树莓派3广告用流畅幻灯片制作问题求助
树莓派广告幻灯片流畅播放方案
核心问题拆解
之前用fbi+vlc切换出现黑屏,本质是两个工具都是独立进程,切换时前一个进程退出、后一个进程启动的间隙,屏幕无内容输出导致短暂黑屏。解决思路要么用单进程统一播放所有媒体,要么用预加载+双缓冲缩短间隙。
方案1:用mpv替代fbi+vlc(最省心的无缝方案)
mpv支持直接播放图片和视频,全程单进程运行,切换完全无缝,还自带循环播放功能,完美解决黑屏问题。
- 先安装mpv:
sudo apt update && sudo apt install mpv -y - 编写播放脚本(保存为
slideshow.sh,记得修改媒体路径):#!/bin/bash # 本地媒体存储路径(提前同步云端文件到这里) MEDIA_DIR="/home/pi/advert_media" # 图片停留时长(单位:秒,可按需修改) IMAGE_DURATION=10 while true; do # 自动扫描目录下的图片、视频,按文件名排序生成临时播放列表 find "$MEDIA_DIR" -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.mp4" -o -iname "*.mov" -o -iname "*.avi" \) | sort > /tmp/slideshow_playlist.m3u # 全屏、无控件、循环播放列表,播放完自动重来 mpv --fullscreen --no-osc --no-input-default-bindings --image-duration="$IMAGE_DURATION" --loop-playlist /tmp/slideshow_playlist.m3u # 防止mpv意外退出,休眠1秒后重启 sleep 1 done - 给脚本加执行权限:
chmod +x slideshow.sh
这个方案的优势:不用切换工具,图片视频全程无缝衔接;支持几乎所有主流媒体格式;可以灵活调整图片停留时间,视频会自动播放完再切下一个。
方案2:云端媒体同步(避免播放时下载卡顿)
绝对不要在播放时实时下载云端文件,会导致卡顿或黑屏。建议定时同步到本地:
用rclone同步(支持绝大多数云端存储)
- 安装rclone:
sudo apt install rclone -y - 配置云端存储(比如Google Drive、阿里云盘、OneDrive等):运行
rclone config按提示完成配置,给云端起个标识名(比如cloud_media) - 编写同步脚本(保存为
sync_media.sh):#!/bin/bash REMOTE_NAME="cloud_media" REMOTE_FOLDER="advert_slideshow" LOCAL_FOLDER="/home/pi/advert_media" # 同步云端文件到本地,只更新变化的文件,避免重复下载 rclone sync "$REMOTE_NAME:$REMOTE_FOLDER" "$LOCAL_FOLDER" --quiet - 加执行权限:
chmod +x sync_media.sh - 加入crontab定时执行(比如每1小时同步一次):
运行crontab -e,加入一行:0 */1 * * * /home/pi/sync_media.sh
开机自启设置
让幻灯片开机自动运行,用systemd服务最可靠:
- 创建服务文件:
sudo nano /etc/systemd/system/slideshow.service - 写入以下内容(注意替换脚本路径):
[Unit] Description=Advertising Slideshow Service After=multi-user.target [Service] User=pi ExecStart=/home/pi/slideshow.sh Restart=always RestartSec=5 [Install] WantedBy=multi-user.target - 启用并启动服务:
sudo systemctl enable slideshow.service sudo systemctl start slideshow.service
内容的提问来源于stack exchange,提问作者Muddyblack k
相关产品推荐
相关产品推荐

