折腾一个网络电视(上)

/ 6评 / 1

书接上回,不断堆叠新的服务!

本文是「折腾一个」系列的第 2 篇。上一篇:《折腾一个个人存储》。

电视是城市孩子的记忆

在我上学的日子里,工作日的起床总是伴随着电视的声音。我的父母会比我起床更早,然后打开电视。在他们已经洗漱完毕的时候,我才会懒洋洋地坐起来。电视的内容我其实早已不记得,大概是洛阳台的早间新闻或者类似的内容——其实当初也并没有真的去看电视,它更像是一个生活的背景音,或者说一个温柔的闹铃。当然,上了高中之后,我起得比父母还要早,所以这三年就没有主持人模糊的声音伴我起床了。

现在一个人在深圳工作,还是很怀念小时候的日子。但我绝对不可能自己听到闹铃就开始刷手机——否则我就能起床了。况且,手机的闹铃听起来真的是很痛苦,真的很痛苦,它就像迎头一盆冷水浇透了整个被窝。

那能不能让什么东西自动在早上打开电视呢?

目光转向了已经 24 小时开机的工控机。

要打开一个电视,首先我们需要一个能开的电视。这并不是一句废话,而是一个需要切实考虑的问题。在这个八平米半的屋子里,买一部电视是完全不现实的事情。不过,我们有一部正在运行存储服务的工控机。这部机器反正是二十四小时开机的,那么不如顺便让它放放视频——配置了下载服务但是不配置影院服务,那下的电影什么时候看呢?

之前买了一块小屏幕当作临时的电脑监视器,后面买了正经的显示器之后这个小屏幕就不再使用了。这时候正好可以复用。考虑到这个小屏幕还自带一个费拉不堪的扬声器,正好能模拟记忆里电视里模糊的声音。

安装桌面环境

之前跑的服务都不需要桌面,所以并没有安装。但是现在 8GB 的硬盘空间已经捉襟见肘,所以 KDE 等重量级桌面环境自然是不合适的。故选择 LXDE 这种轻量级环境。一句话安装桌面、图形环境和中文字体:

# yaourt -S lxde lxdm wqy-zenhei

配置开机时自动启动图形环境:

# systemctl enable lxdm

并配置开机后自动登录桌面,编辑 /etc/lxdm/lxdm.conf, 追加如下行:

autologin=用户名

重启一下即可进入桌面。

自动视频流

我第一个想到的方案是直接通过浏览器自动化打开 Bilibili 或者 YouTube 并随机挑选一个视频开始播放,并自动播放接下来的内容。但是这样做有两个风险:第一个风险来自 YouTube, 它的随机游走很有可能走到一些恐怖的地方,而我花了很长时间才把 YouTube 调教到能看的状态,游走到一个反动视频我的视频流就毁了;第二个风险来自 Bilibili, 它虽然不会游走到特别恐怖的地方,但是它的推送流说实话非常的……无趣,大部分内容也并不适合作为生活背景音使用。

不过当我打开浏览器的一瞬间,一切都不重要了——这部机器的 CPU 并不能 hold 住网页解析 1080p 视频流。毕竟,只是工控机,赛扬 J1900 的 CPU 的算力,要求不能太高。

所以我们就必须考虑本地的视频流,或者至少得抛去浏览器带来的严重的 overhead. 那么,看电视吧!

家庭影院系统

Kodi 是一个完整的家庭影院的实现方案。在 Archlinux 下安装也很简单,一句话的事情:

# pacman -S kodi

完成之后,可以直接启动 kodi. 容易注意到界面是英文的,以及中文字符全部都显示为框框,调整起来很简单:首先选择 System - Settings - Appearance - Skin - Fonts, 选中 Aerial based 就可以修复框框问题;然后进入 System - Settings - International - Language, 选择 Chinese (Simple) 即可。

接入数字电视

但是单纯有 kodi 还并不够用,我们需要看「电视」,而不单纯是电影和下载的流媒体。这意味着我们需要想办法接入数字电视系统,换句话说,我们需要一个机顶盒。不过呢,考虑到现在的机顶盒其实走的也是网络(即 IPTV),那么我们能不能直接抓取网络上的视频流呢?答案是可以,而且并不需要多掏一分钱。由于众所周知的原因,我并不能在此直接披露需要的文件,不过「直播源」这三个字应该足够有兴趣的同学们自行探索发现。

不过 kodi 并不自带这个能力,我们还需要额外安装 Simple IPTV 插件才能读取直播源文件。这时候我们需要用到 AUR. 不过我比较懒,当初配置 Archlinux 时我就已经用上了 yaourt. 这个包管理器可以让你直接安装 AUR 中的包。不过现在已经被弃用了,yay 则更为常用。但二者都兼容 pacman 的参数,所以无妨:

$ yaourt -S kodi-addon-pvr-iptvsimple

由于需要从源代码构建,所以额外地需要 make, patch, gccfakeroot 安装好。

完成之后,启动 kodi, 它会询问是否启用新的插件,选「是」并直接跟着提示填入直播源文件,选择左下角齿轮进入专家模式并保存就可以在电视列表中看到导入的频道了。点开就可以开始看电视了。注意有些时候可能会提示插件无法加载,此时保存所有配置,退出再进入 kodi, 然后再在插件列表中重新启用 PVR 插件即可。

调试驱动

但是在没有装驱动的情况下,kodi 很容易卡住,然后就会崩溃。所以仍然需要调教显卡驱动——没错,即使是这么一部工控主机,也是需要配置显卡驱动的,主要是为了视频硬解加速。

首先,安装 Intel 微码(如果没装的话):

# yaourt -S intel-ucode

然后安装图形驱动 mesaxf86-video-intel:

# yaourt -S mesa xf86-video-intel

新建 /etc/X11/xorg.conf.d/20-intel.conf, 追加如下内容:

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "DRI" "2"
    Option      "AccelMethod"  "uxa"
EndSection

安装解码器驱动 libva-intel-driver:

# yaourt -S libva-intel-driver

完成后重启以应用更改。

遥控器

kodi 支持使用手机作为遥控器使用。下载并安装 Kore 即可用此 App 在局域网内控制 kodi 实例。

kodi 中,选择系统 - 服务 - 控制,取消「需要身份验证」、勾选「允许通过 HTTP 远程控制」和「允许通过异地程序远程控制」;此时 kodi 实例就可以被 Kore 自动发现和连接。


目前,如果能找到合适的直播源,就可以看电视了。kodi 自然还支持其他能力,比如播放电影、音乐甚至用模拟器玩游戏。

当然,还有更重要的事情是自动开关机。这个问题我们将在之后继续配置。

  1. RadND说道:

    一块小屏幕,还要10080P的视频流做什么呢,那里没看懂

  2. […] 本篇是「折腾一个」系列的第 3 篇。上一篇:《折腾一个网络电视(上)》。 […]

  3. DouFlower说道:

    家豪你可以雇佣我 我每天早上定时给你开电视关电视 你就不用再想怎么配置了

  4. 哥斯拉说道:

    这算是不错的点子,我都想弄点背景音了。

  5. 雨落泪尽说道:

    咱农村孩子也看电视的啦

发表评论

您的电子邮箱地址不会被公开。