利用树莓派和Kodi投屏

本文介绍了如何利用树莓派和Kodi实现移动设备投屏到电视机的功能。篇幅较长,主要分为如下几个部分

  1. 什么是投屏?
  2. 什么是树莓派和Kodi
  3. 适用情境
  4. 具体实现过程
    4.1 连接电视机和树莓派
    4.2 配置树莓派视频输出参数
    4.3 安装Kodi
    4.4 设置Kodi播放参数
    4.5 测试投屏
    4.6 下载手机遥控器
  5. 结语
**1. 什么是投屏**
投屏就是将一个设备上的屏幕显示内容投射到另一台设备上播放,最常用的场景就是将手机或者平板电脑上的视频投射到电视机上进行播放,毕竟电视机的屏幕大得多,看起来更过瘾。

比如,你在爱奇艺上看视频时,一般都会有一个“TV”的按钮,那就是用于投屏的,可以将爱奇艺上正在播放的视频投射到电视机上播放。
利用树莓派和Kodi投屏_第1张图片

而要实现投屏功能,一般要求两台设备都支持 Airplay 或者 DLNA 协议。这两个协议下文还会涉及到。

**2. 什么是树莓派和Kodi**
简单来说,树莓派就是一个“卡片式电脑”,可以安装Linux、Windows等多种操作系统,并且自带多种输入输出接口,可以做很多有意思的事情。价格在300元左右。

利用树莓派和Kodi投屏_第2张图片

至于Kodi,可以实现“家庭影院”功能的开源软件/系统。用它可以管理你的本地媒体资源(包括视频、音频以及图片),并且可以播放远端媒体资源。

我就准备用树莓派和Kodi来实现投屏功能。

**3. 适用情境**
为什么要折腾这些东西呢?起因是家里有一台老式电视机(只有AV接口,没有HDMI接口),冬天到了,我想窝在被窝里看电视,最好是将网络视频APP上的节目投屏到电视上看,多爽啊!

起初想到了买一个投屏的盒子,看了一下主流的价格在200元左右。想到自己还有一个“被遗忘”的树莓派,就边搜索教程边摸索着实践起来了。

硬件配置一览:

  1. 老式电视机一台(只有AV接口,没有HDMI接口);
    利用树莓派和Kodi投屏_第3张图片

  2. 树莓派1代B+(有3.5mm复合音视频输出接口),安装了官方的Raspbian系统
    利用树莓派和Kodi投屏_第4张图片

**4. 具体实现过程**
4.1 连接电视机和树莓派 **这一步千万注意连接线的选择!**首先当然要选择一分三的AV连接线,但是市面上一般的AV连接线是对应“国标”的,而树莓派3.5mm接口是对应“美标”的,所以需要一个**转接头**进行转换。转接头某宝上有卖,AV线(一分三的)加转接头大概12元左右。

利用树莓派和Kodi投屏_第5张图片

4.2 配置树莓派视频输出参数
既然连接上了,当然要播放一个视频看看啦!用树莓派上的视频播放器mplayer播放一个测试视频,结果只出来了声音,但是没有视频画面。即使如此,还是让我兴奋了一下,毕竟这说明连接没有什么大的问题!

但是不能一直没有声音吧,所以我网上搜索一番,发现需要重新配置树莓派的视频输出参数。具体做法如下:
编辑 /boot/config.txt 文件,编辑前请确保你有root或者sudo权限,并且可以先备份一下这个文件,以防设置过程出错!

用vi或nano等文本编辑器打开文件,其中重要的参数如下(参考来源):

overscan_left=16 //将画面向左移动16个像素点
overscan_right=16 //将画面向右移动16个像素点
overscan_top=16 //将画面向上移动16个像素点
overscan_bottom=16 //将画面向下移动16个像素点
disable_overscan=0 //设置是否允许屏幕过扫描1为不允许,0为允许
framebuffer_width=800 //设置屏幕宽度为800个像素点
framebuffer_height=400 //设置屏幕高度为400个像素点
sdtv_mode=2 //设置树莓派输出的电视制式
	      //0-NTSC,北美视频标准
	      //1-NTSC-J,日本视频标准
	      //2-PAL,英国和其他国家视频标准
	      //3-PAL-M,巴西标准
sdtv_aspect=2 //设置输出画面宽高比,1-4:3,2-14:9,3-16:9

经过测试,我选用了如下参数:(究竟要用什么参数,要根据自己的实际环境而定)
需要注意的是,当你更改了这些参数,它们不会立刻生效,必须重启系统后才能生效!

disable_overscan=0
overscan_left=20
framebuffer_width=850
framebuffer_height=750
sdtv_mode=2

当我更改参数并重启系统后,再次播放视频,电视机的画面和声音都有了,并且并没有噪音,Lucky!

最后说一句,如果你使用HDMI线连接电视机的话,需要用其他参数,主要是hdmi开头的那些参数,具体可以另行搜索。

4.3 安装Kodi
安装Kodi可以直接选用针对Kodi的定制化Linux发行版。由于我已经安装了其他系统,偷个懒就直接安装Kodi软件了。

如果要安装较新的Kodi版本,首先需要更新软件源(我用的是中科大的源):
打开 /etc/apt/sources.list 文件,将内容替换成:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

然后打开 /etc/apt/sources.list.d/raspi.list 文件,将内容替换成:

deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian/ jessie main

更新软件源后,接着就是实际地更新软件并安装Kodi了:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install kodi

这样Kodi就算安装好了!

4.4 设置Kodi播放参数
安装好Kodi后,当然还要进行调试啊。首先启动Kodi看看:
命令行输入Kodi就可以启动了:

kodi
#或者运行 kodi & 这个命令,可以后台运行Kodi

果然,出现了Kodi的画面!
利用树莓派和Kodi投屏_第6张图片

接下来就是设置Kodi的参数了。有两种方法:一是通过电脑+鼠标键盘或者电视机+遥控器来进行可视化设置,二是通过配置文件来进行设置。我家的遥控器不灵了,只能利用配置文件来调控Kodi啦!这里提一句,第一种方法能做到的第二种方法都能做到,而第二种方法能做的第一种不一定能做到!

最重要的两个配置文件都在 ~/.kodi/userdata/ 文件夹下。分别是 guisettings.xml 和 advancedsettings.xml。其中 guisettings.xml 文件就是用来存放你通过电脑屏幕或电视机屏幕调控的那些参数。而 advancedsettings.xml 是存放一些更高级功能的参数,该文件里的参数可以覆盖 guisettings.xml 中的参数。经过我测试,直接修改 guisettings.xml 是不起作用的,而修改 advancedsettings.xml 可以直接操控Kodi。

比如,我们要开启 Airplay、UPnP(即DLNA)以及 webserver(分别是用来支持Apple设备播放、支持DLNA协议设备播放以及网络端控制),这些功能的参数在 guisettings.xml 中都有,但是我们不能直接修改它,而是要在 advancedsettings.xml 中重新设置这些参数。第一次打开 advancedsettings.xml,里面应该是空的(如果没有这个文件,就在上面提到的文件夹下面创建一下该文件),然后在里面输入以下参数:

<advancedsettings>
    <services>
        <airplay>trueairplay>
        <airplaypassword default="true">airplaypassword>
        <airplayvideosupport default="true">trueairplayvideosupport>
        <airplayvolumecontrol default="true">trueairplayvolumecontrol>
        <devicename default="true">Kodidevicename>
        <esallinterfaces>trueesallinterfaces>
        <escontinuousdelay default="true">25escontinuousdelay>
        <esenabled default="true">trueesenabled>
        <esinitialdelay default="true">750esinitialdelay>
        <esmaxclients default="true">20esmaxclients>
        <esport default="true">9777esport>
        <esportrange default="true">10esportrange>
        <upnpannounce default="true">trueupnpannounce>
        <upnpcontroller default="true">falseupnpcontroller>
        <upnplookforexternalsubtitles default="true">falseupnplookforexternalsubtitles>
        <upnprenderer>trueupnprenderer>
        <upnpserver>trueupnpserver>
        <useairplaypassword>trueuseairplaypassword>
        <webserver>truewebserver>
        <webserverpassword default="true">webserverpassword>
        <webserverport default="true">8080webserverport>
        <webserverusername default="true">kodiwebserverusername>
        <webskin default="true">webinterface.defaultwebskin>
        <zeroconf default="true">truezeroconf>
    services>
advancedsettings>

这样就开启了三个功能。比如,我们看一看 webserver。浏览器里打开 :8080(我的树莓派ip地址是192.168.1.111,所以我在浏览器里输入192.168.1.111:8080)就可以对Kodi进行远端控制了。

利用树莓派和Kodi投屏_第7张图片

4.5 测试投屏
既然树莓派已经支持 Airplay 以及 DLNA 协议了,那当然要测试能不能投屏了啊,终于等到这一步!

重启Kodi。命令行重启Kodi的命令如下:

ps aux | grep -i "kodi" | awk '{print $2}' | xargs -I {} kill -9 {}
kodi &

重启后在爱奇艺上选择一个节目(看了四五遍的《请回答1988》),点击投屏按钮,预想的画面出现啦!一番折腾没有白费!

利用树莓派和Kodi投屏_第8张图片

4.6 下载手机遥控器
最后还要解决一下遥控器的问题,官方 Wiki 推荐了一系列的手机APP来替代真实的遥控器。我选择了一款 “Official XBMC Remote for iOS” 的APP,非常好用(快进、设置等等都可以)。

利用树莓派和Kodi投屏_第9张图片

**5. 结语**
至此利用树莓派和Kodi进行投屏就成功了。本次为实现投屏,硬件的总花费为12元。其实如果不是有一个闲置的树莓派,我应该不会花这么一番功夫来折腾!毕竟一个投屏的盒子也就百元左右。

网上的教程都语焉不详,希望我啰里啰嗦的文章能帮助到有需要的人!

谢谢大家看此长文!

(公众号:生信了)
利用树莓派和Kodi投屏_第10张图片

你可能感兴趣的:(#,闲余时光)