自动下载播放FTP影像内容 树莓派显示屏轮播方案咨询
摄像头影像循环播放方案实现建议
候选方案优劣对比
先针对你提到的三个实现方案做直观对比,你可以结合自己的硬件配置选择:
- 服务器端每小时拼接后下发到树莓派播放
优点:树莓派仅需承担播放任务,负载极低、运行稳定;拼接逻辑集中在服务端维护,不需要修改终端配置
缺点:托管服务器需要消耗算力执行视频拼接,低配服务器可能产生额外性能成本;每次下发整段大视频会占用较多带宽,家庭带宽不足时容易出现更新卡顿 - 单文件下载到树莓派本地拼接播放
优点:托管服务器仅需提供存储、文件列表能力,算力消耗极低;可做增量更新,不需要每次传输整段大视频
缺点:树莓派(尤其是3B及以下低配置版本)拼接视频时CPU占用率极高,容易导致播放卡顿;拼接逻辑分散在终端,故障排查成本更高 - 第三方软件全自动化实现
优点:无需编写大量代码,仅靠配置即可上线
缺点:自定义程度低,很难完美匹配「按时间顺序整合24小时内容循环播放、自动删除48小时旧文件」的个性化需求;大部分安防类第三方软件冗余功能多,会额外占用硬件资源
最优落地路径(复用现有Synology NAS作为中间节点)
你家里的群晖NAS刚好可以作为中间处理节点,完美避开上述方案的所有缺陷,你有基础脚本能力可以在几小时内完成搭建:
- 文件同步配置
用群晖自带的FTP同步任务,或者自己写rsync定时脚本,每10分钟从托管服务器拉取新上传的jpg、mp4文件到群晖本地指定目录。 - 旧文件自动清理
在群晖的任务计划中添加定时执行脚本,每天运行一次即可完成48小时以上旧文件清理:find /你的群晖影像存储目录 -mtime +2 -delete - 影像拼接逻辑
每小时在群晖上跑一次拼接脚本:先按拍摄时间对近24小时的jpg、mp4文件排序,将jpg转成固定时长(比如3秒)的视频帧后,和mp4文件合并成统一的播放视频,参考命令:ffmpeg -f concat -safe 0 -i 排序后的文件列表.txt -c copy 最新拼接视频.mp4
群晖的CPU算力远高于树莓派,拼接过程不会出现性能瓶颈。 - 播放端实现
两种方案二选一即可:- 网页播放:用群晖自带的Web Station搭建静态站点,写一个极简HTML页面,仅需放入
<video src="拼接视频路径" autoplay loop muted playsinline></video>标签,树莓派开机自动启动Chromium浏览器打开该页面并开启全屏即可。 - 本地播放:树莓派每小时从群晖拉取最新拼接好的视频缓存到本地,用
omxplayer等本地播放器循环播放,比网页播放更稳定、流畅,不会出现浏览器内存溢出问题。
- 网页播放:用群晖自带的Web Station搭建静态站点,写一个极简HTML页面,仅需放入
- 可选优化
如果需要更低的内容更新延迟,可以把拼接频率调整到每15分钟一次,群晖完全可以承载该负载。
无群晖备选方案
如果你不想动用群晖NAS,优先选择「服务器端拼接后下发」的方案,目前绝大多数托管服务器的算力都可以轻松承载ffmpeg视频拼接任务,实现逻辑和上述方案一致,仅需要把同步、清理、拼接的逻辑迁移到托管服务器执行即可。
内容的提问来源于stack exchange,提问作者Gys Wuyts
相关产品推荐
相关产品推荐

