九年只差一点:我对树莓派的爱与恨
来源:dev.to — 2026-09-14
📋 概述
作者与树莓派的关系九年来一直暧昧:他认为它本可以是完美的低成本数字标牌播放器,但魔鬼藏在细节里。2019 年他还在为公司写文章建议不要用树莓派做严肃的数字标牌,七年后却发布了「如何在树莓派上搭数字标牌」的教程,这篇文章讲的就是中间发生了什么。自 2017 年起他不断尝试把 garlic-player 移植到树莓派,屡战屡败。在 Pi 3 上,FFmpeg 通过 MMAL 做了编解码硬件加速,但视频输出没有加速也没有零拷贝路径,结果 CPU 只跑到 30% 视频依然爆音;2017 年的解法是折腾 Omxplayer,靠 Luca Carlon 的 PoT 项目在 QML 场景中直接渲染,为此他不得不把 QWidget 版应用拆成库加播放器组件,几天重构只为支持一种编解码器。2018 年他终于让 HD 视频在树莓派 Zero 上流畅播放,却又撞上新问题:使用 PiOmxTextures 时无法打开 webview,没有报错、没有日志,HTML5 组件与多区布局这两个差异化功能随之报废。
🔑 核心要点
- Pi 3 上 FFmpeg 通过 MMAL 做编解码加速,但视频输出既无加速也无零拷贝路径,30% CPU 占用下画面依然爆音。
- 2017 年的解法是 Omxplayer 全 GPU 解码,配合 Luca Carlon 的 PoT(PiOmxTextures)项目在 QML 场景里渲染。
- 为支持一个编解码器,他不得不把 QWidget 版应用拆成库加播放器组件,额外写一个 QML 播放器,几天重构只为一个格式。
- 2018 年在树莓派 Zero 上实现了流畅 HD 播放,却无法在使用 PiOmxTextures 时打开 webview,且没有任何错误与日志。
- HTML5 组件与多区布局这两个让 garlic-player 与众不同的功能因此同时报废,数周后他关掉了该分支。
- 作者反思失误在于追求完美:许多公司照样发布产品,只把已知限制写进说明,就为了「它能在树莓派上跑」这句宣传。
- Pi 4 带来了新 GPU、更快的 CPU 与两个 HDMI 口,但加速只存在于 32 位系统,64 位 Raspbian 长期停留在 beta 且没有硬件解码。
💡 金句
我的错误是追求完美;许多公司照样发布树莓派软件,只要把已知问题写清楚,就能拿到「它能在 Pi 上跑」这句宣传语。
👍 0
👎 0
← 返回 dev.to 首页