用树莓派制作电视机
一、所需硬件
显示器或电视机自然必不可少,如果显示器不带外放,还需要一个音箱或扬声器(可以利用蓝牙音箱)。
树莓派有两种音视频输出方式:HDMI 和 RCA。连接电视机/显示器有以下几种方案:
-
1.一般的电视机和稍好点的显示器应该都有 HDMI 接口,直接与树莓派的 HDMI 接口相连即可。
-
2.差一点的显示器可能只有 VGA 或 DVI,用转接线应该也可以。
-
3.老式电视机可以通过 RCA 接口连接,树莓派将 RCA 插孔与 3.5mm 音频插孔合并了,与一般的 RCA 插头上四节顺序不同,需要转接一下。
二、Kodi
- kodi 是一个强大、美观、跨平台、可扩展的媒体中心软件,一直享有盛誉。以前玩 linux 的时候,还叫 xbmc。树莓派上有一些内置 kodi 的操作系统,比如 OpenElec、OSMC(Raspbmc),建议直接选择这类操作系统,省掉一些不必要的麻烦。因为之前做了很多自定义配置,不想重装系统,所以我选择了在 Raspbian 上安装 kodi。
-
- 安装 kodi
安装过程主要参考:
- 安装 kodi
添加额外软件源,编辑 /etc/apt/sources.list.d/mene.list ,添加:
deb http://archive.mene.za.net/raspbian wheezy contrib
可以在后面加上 unstable 以使用最新的 kodi,缺点是可能不大稳定。
导入 key 以信任该软件源:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 5243CDED
然后,更新软件源,并安装 kodi:
sudo apt-get update
sudo apt-get install kodi
可以使用用户 pi 或 kodi 运行,以 pi 为例,确保 pi 在以下 group 内:
audio video input dialout plugdev tty
使用 groups pi 查看 pi 所属的 group,使用 useradd -G
添加 udev 规则,编辑 /etc/udev/rules.d/99-input.rules ,加入:
SUBSYSTEM=="input", GROUP="input", MODE="0660"
KERNEL=="tty[0-9]*", GROUP="tty", MODE="0660"
如果要开机启动,编辑 /etc/default/kodi ,设置:
ENABLED=1
USER=pi
设置分配给 GPU 的 RAM 大小,最好不低于 128M,修改 /boot/config.txt :
gpu_mem=256
2. 插件及设置
首先,把界面改为中文。选择 SYSTEM 底下的 Settings,打开设置界面,选择 Appearance,然后选择 Skin,右侧 Fonts 改为 Arial Based,接着选择 International,右侧 Language 改为 Chinese (Simple),稍等片刻,界面就变为中文了。
然后,可以更换你喜欢的主题。 更换主题前请将 Language 改为 English ,不然换了主题以后很有可能中文字符全都变成方块,找不到设置菜单。选择『皮肤』,右侧『皮肤』显示目前是默认的 Confluence,回车可以查看其他主题。吐槽一下,主题不支持预览也就算了,有些居然连图片都没有,也是醉了。除了 Confluence 以外,比较优秀又耗资源较少的首推 Amber。不过 Amber 似乎没有网格视图,可能会有少许 bug。换了『皮肤』以后,底下的『导航音效』也可以设为主题配套的音效
接着,打开遥控功能。设置里面选择『服务』,然后选择『Web 服务器』,勾选『允许通过 HTTP 控制 Kodi』并设置『端口』、『用户名』、『密码』,之后就可以通过手机 app 遥控 kodi 了。Android 上可用 Yatse,iOS 可用 Kodi Remote。我用的是 Kodi Remote,有些功能是隐藏的,比如长按菜单按钮打开上下文菜单等。
『服务』里面还有一些其他设置,比如 UPnP(可取代 上一节 的 MiniDLNA)、AirPlay(可取代后面的 shairport-sync)等。
如果音频是外接音箱,需要设置音频输出。设置里面选择『系统』,然后选择『音频输出』,修改『音频输出设备』。如果通过 3.5mm 插孔连接,选择 Pi:Analogue ,如果通过 USB 声卡连接,选择 ALSA: USB 2.0 Device 。(音频选择 ALSA 之后,将不能使用 OMX 加速。)
最后,就是安装插件了。官方插件库以英文为主,中文插件库有 xbmc-addons-chinese ,和 HDPfans ,HDPfans 里面很多插件已经失效。下载 zip 文件之后,在设置里面选择『插件』,然后选择『从 zip 文件安装』。安装完成以后,可以在『获取插件』里面看到『Chinese Add-ons』和『HDPfans 中文插件库』。
插件库里的插件类型有音乐插件、视频插件、图片插件、服务、字幕、歌词等等。目前(14.2版本)基本可用的插件有:PPTV、Youku TV、百度云、奇艺视频、搜狐视频、亚洲电视、CNTV 等等,这些插件大都有一些 bug。体验最好的当属 Youku TV ,直接模拟 Youku TV 官方 app 的界面,与盒子界面风格一致,里面提供三种分段方式:『分段』、『堆叠』、『m3u8』,不幸的是分段、堆叠这两种方式在树莓派上不能开启硬件加速,只有声音没有图像,这跟优酷 flv 的格式有关,m3u8 在每一段衔接的地方会卡一会儿,而且不能续播。百度云插件可以观看百度网盘的视频,只是缓冲速度比较慢,我这儿 4M 小水管基本不能看。
说到本地资源管理,不得不提到刮削器。刮削器的作用是根据文件名获取电影、电视剧等相关信息,常用的有豆瓣刮削器、时光网刮削器。目前刮削器还很不智能,必须对视频重命名才能正确获取信息。具体使用方法是,在视频、音频里面添加一个目录,然后设置刮削器,每当添加新文件,需要更新资料库。
顺便提一下,目前 kodi 有个 bug,退出之后会黑屏,无法回到桌面。
3. 性能优化
- kodi 有一些高级设置在 GUI 里面无法修改,可以编辑 ~/.kodi/userdata/advancedsettings.xml 来修改。里面有很多设置项,可以参考 官方文档 ,常见的网络相关的设置有 buffermode、readbufferfactor、cachemembuffersize 等,当网络不好时可做如下设置:
<advancedsettings>
<network>
<buffermode>1</buffermode>
<readbufferfactor>4.0</readbufferfactor>
<cachemembuffersize>41943040</cachemembuffersize>
</network>
</advancedsettings>
其中, buffermode 表示哪些文件需要缓存(网络、本地),设为 1 表示缓存所有文件; readbufferfactor 表示缓存填充速率,设为 4.0 则下载速率限制为 4.0 * 视频平均比特率; cachemembuffersize 表示缓冲区大小,设为 40M 则实际 RAM 占用为 3 * 40M = 120M。