[讨论] 用树莓派自干Chromecast替代品

楼主: ivon852 (ASUS)   2024-11-09 18:34:45
将树莓派改造为串流装置,从手机投放的多媒体到树莓派播放,最好连手机萤幕也能一并
镜射上去。
https://i.imgur.com/t67iDFN.jpg
动机
虽然有买Chromecast,但是不想被单一产品绑住,所以尝试用树莓派DIY一个类似
Chromecast的装置,采取开源方案。
加上我有一个闲置的喇叭,还有一块鸡肋的携带式萤幕,预计让树莓派搭配以上两个组成
一个接收手机投放的装置。
树莓派安装的作业系统是原厂的Debian Linux,搭配LXDE桌面环境。
在Google TV推出以前,Chromecast最主要的功能就是:
- 将手机的音讯串流到Chromecast装置,包含串流音乐
- 将离线的影片或音乐串流到Chromecast装置
- 镜射手机萤幕到Chromecast装置,包含串流Youtube影片
- 电子相框,待机时轮播照片
我暂时还没想要与智慧家电的整合,虽然要的话也是可以。例如搭配HomeAssiatant套件

重点在于树莓派要如何成为随时能让手机投放的装置?
这个投影方案应该相容Android与iOS系统,电脑系统为次要支援对象。
投放过程应该要从手机端操作,不需要频繁去动到树莓派的设定。也就是主动从手机投放
,而非用手机去存取远端的内容。故Volumio、Jellyfin、Roon之类的方案不在考虑列表

要讲具体一点的场景的话,那就是我只要在手机按一个按钮,就能选取要投放的对象,将
正在看的影片投放到树莓派 ———— 不论那个影片是Youtube还是Setting的。
解法
用作业系统来分类吧。
iPhone相对单纯,只要在树莓派装开源的AirPlay接收器“Uxplay”,就能透过AirPlay播
放iOS装置上的影片和音乐,还有投放萤幕。
https://github.com/antimof/UxPlay
用Systemd将UxPlay设定为开机自动启动服务,树莓派便能随时待命等待投放。由于
UxPlay的视窗是叠在X Server上面的,不投放的时候视窗关闭,下面的桌布就会露出来,
如是成为相片轮播功能。
用起来就像下图展示的一样:
https://i.imgur.com/5xSCI2v.jpg
Android手机情况比较混乱,有很多种解决方案,各家手机厂商甚至有自家的东西,但是
我不想依赖特定厂商的解决方案。
投放的协定通常是走Wifi,频宽比较大。
最常见的是“Chromecast”,背后使用Google Cast协定,大部分Android手机都支援,能
将Android的萤幕和音效投影到Chromecast装置。但Google Cast为专有协定,目前还没有
人破解出来。AirScreen这类投屏软件应该是私底下破解的。
一般人无法在没有Google认证的情况下做出Chromecast接收端。目前最接近破解版
Chromecast的应该是这个Shanocast:
https://github.com/rgerganov/shanocast
另一个协定“Miracast”,这个只有部份Android手机支援(Google刻意让Pixel不支援
Miracast,真的很坏,连带影响到Sony Xperia),不是装个APP就能解决的。如果有幸
支援Miracast,再于树莓派装Miraclecast接收端,就能够投影手机萤幕到树莓派,也可以
播放音乐和影片。
https://github.com/albfan/miraclecast
除了Miracast以外,还有更老的“DLNA”技术,仅部份手机支援。树莓派安装
gmrender-resurrect作为接收端。
https://github.com/hzeller/gmrender-resurrect
小结,以上的方案都有各种问题。如果真的要不分Android手机厂牌,在树莓派跑“
Scrcpy”或许是个解法,萤幕和声音都能传过去。
https://github.com/Genymobile/scrcpy
但是它的用法比较像是从电脑控制Android手机,而非从手机端投影到电脑。
https://i.imgur.com/eMH8zpH.jpg
Scrcpy要从手机配对很麻烦,或许可以拿KDE Connect作为中介,写个script,远端控制
树莓派执行adb pair指令,让树莓派能自动与Android手机完成无线配对,再启动Scrcpy
Chromecast的应该是这个Shanocast:
https://github.com/rgerganov/shanocast
另一个协定“Miracast”,这个只有部份Android手机支援(Google刻意让Pixel不支援
Miracast,真的很坏,连带影响到Sony Xperia),不是装个APP就能解决的。如果有幸
支援Miracast,再于树莓派装Miraclecast接收端,就能够投影手机萤幕到树莓派,也可以
播放音乐和影片。
https://github.com/albfan/miraclecast
除了Miracast以外,还有更老的“DLNA”技术,仅部份手机支援。树莓派安装
gmrender-resurrect作为接收端。
https://github.com/hzeller/gmrender-resurrect
小结,以上的方案都有各种问题。如果真的要不分Android手机厂牌,在树莓派跑“
Scrcpy”或许是个解法,萤幕和声音都能传过去。
https://github.com/Genymobile/scrcpy
但是它的用法比较像是从电脑控制Android手机,而非从手机端投影到电脑。
https://i.imgur.com/eMH8zpH.jpg
Scrcpy要从手机配对很麻烦,或许可以拿KDE Connect作为中介,写个script,远端控制
树莓派执行adb pair指令,让树莓派能自动与Android手机完成无线配对,再启动Scrcpy
视窗?
以上协定全都不要?
最后再看看主流协定以外的替代方案。
以前有个叫做Raspicast的专案,能将Android手机影片投放到树莓派。可是技术太旧,
没法更新了。
NymphCast为一套完整的解决方案,开放原始码,目前已经能够投放音乐和影片,尚提供
媒体服务器的功能。
https://github.com/MayaPosch/NymphCast
无须特殊硬件,安装APP便能投放,作者有写一个参考实现客户端,能用来播放音乐,并
且支援一对多。播放完毕视窗会自动关闭。
https://i.imgur.com/QyfmWz4.jpg
另一个是FCast,由FUTO组织所研发的协定,已经有接收端程式。配合他们家的GrayJay
APP就能投放影片。GrayJay是将YouTube、Twitch、Oddysey整合在一起的大杂烩,算是异
色版NewPipe吧。可惜GrayJay是假开源APP。
https://grayjay.app/
※ 文章网址: https://www.ptt.cc/bbs/MobileComm/M.1731148503.A.3E7.html
作者: superluminal (光)   2024-11-10 01:15:00
强!
作者: mihonisizumi (中原岬マジ天使)   2024-11-10 22:05:00

Links booklink

Contact Us: admin [ a t ] ucptt.com