本文介绍了如何利用树莓派和Kodi实现移动设备投屏到电视机的功能。篇幅较长,主要分为如下几个部分
- 什么是投屏?
- 什么是树莓派和Kodi
- 适用情境
- 具体实现过程
4.1 连接电视机和树莓派
4.2 配置树莓派视频输出参数
4.3 安装Kodi
4.4 设置Kodi播放参数
4.5 测试投屏
4.6 下载手机遥控器 - 结语
比如,你在爱奇艺上看视频时,一般都会有一个“TV”的按钮,那就是用于投屏的,可以将爱奇艺上正在播放的视频投射到电视机上播放。
而要实现投屏功能,一般要求两台设备都支持 Airplay 或者 DLNA 协议。这两个协议下文还会涉及到。
至于Kodi,可以实现“家庭影院”功能的开源软件/系统。用它可以管理你的本地媒体资源(包括视频、音频以及图片),并且可以播放远端媒体资源。
我就准备用树莓派和Kodi来实现投屏功能。
起初想到了买一个投屏的盒子,看了一下主流的价格在200元左右。想到自己还有一个“被遗忘”的树莓派,就边搜索教程边摸索着实践起来了。
硬件配置一览:
-
老式电视机一台(只有AV接口,没有HDMI接口);
-
树莓派1代B+(有3.5mm复合音视频输出接口),安装了官方的Raspbian系统
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/ j