我最近没有太多时间来照顾该项目。如果您有兴趣帮助,请在#398上发表评论
这是一个程序,可以将MACOS音频或Linux音频播放到您的Google Cast设备或Sonos扬声器上。它也可以投放视频文件。
它是为python3编写的,可以通过node.js , parec ( linux )或ffmpeg进行流式传输。如果安装了ffmpeg或parec ( Linux ), MKCHROMECAST能够使用有损和无损音频格式。它还支持多房间的播放和24位/96kHz高音频分辨率。此外,还可以使用系统托盘菜单。
默认情况下,具有node.js (或Linux中的parec )的Mkchromecast流以及mp3音频编码格式的样本速率为44100Hz ,平均比特率为192k 。这些默认值可以使用--sample-rate和-b标志更改。当您的无线路由器不是很强大时,或者在您不想降低声音质量时,修改这些参数很有用。有关更多信息,请访问Wiki和FAQ。
您可以选择在此处ffmpeg更多信息)。 Linux用户还可以配置ALSA以捕获音频。请注意,有时播放歌曲和听证会之间的滞后可能会在某些后端长达8秒。
要有一个从控制台使用MKCHROMECAST的想法,请检查此GIF。
Mkchromecast提供了一个beta系统托盘菜单。它要求您安装PyQt5 。有关更多信息,请查看要求并安装部分。
这就是系统托盘菜单的样子:
检查这些图像:
如果您有Sonos扬声器,则可以使用Mkchromecast在计算机中播放您正在听的任何内容。要添加Sonos支持,请安装soco Python模块:
pip3 install soco
如果您想贡献,可以通过报告问题或通过开发/改进来创建拉动请求来提供帮助。如果您的情况是后者,请访问Wiki的开发区。
为了使用Mkchromecast ,您需要以下软件与node.js流式传输:
为了获得更多控制,您需要ffmpeg作为后端。在这种情况下,安装以下内容:
对于那些不喜欢Pulseaudio的人,可以使用ALSA进行铸造。在这种情况下,要求是:
安装此应用程序有两种方法:
MacOS用户有一个独立的应用程序。您需要将其拖到/Applications/文件夹中。
在此处下载最新的DMG。您还需要安装黑洞。
如果您使用的是自制,则可以按照以下方式安装二进制文件:
brew install --cask mkchromecast
如果您发现该应用程序有任何问题,请在此处报告。
Debian官方存储库可用Mkchromecast 。要安装它,只需:
apt install mkchromecast
在此处下载最新的DEB软件包,并按照以下方式安装:
sudo apt -f install ./mkchromecast_$VERSION_all.deb
其中$VERSION = XYZ-Rev ,例如: 0.2.6-1 。
这应该在Debian不稳定和测试中起作用。我也很感谢Ubuntu测试人员。如果发现任何问题,请在此处报告。
如果您遇到与依赖关系有关的其他问题,请在此处讨论或打开新问题。
此外,有两个用于拉动脉冲或ALSA依赖性的依赖包:
apt-get install mkchromecast-alsa (ALSA users)
或者
apt-get install mkchromecast-pulseaudio (Pulseaudio users)
要安装Mkchromecast ,请克隆此存储库:
git clone https://github.com/muammar/mkchromecast.git --depth 1
或者,您可以在此处下载稳定版本之一,然后解压缩文件。
Mkchromecast可在AUR上获得:
# install with aurman
aurman -S mkchromecast # install with aurutils
aur sync mkchromecast如果您获得错误cannot import name 'DependencyWarning' ,请检查第31期。
要安装python要求,请使用此存储库中运送的requirements.txt文件:
pip install -r requirements.txt
注意:如果此步骤失败,也许您需要使用sudo进行安装,如下所示。但是,在使用此方法安装之前,请验证为什么常规用户无法安装这些要求。
sudo pip install -r requirements.txt
Linux用户可以尝试使用带有分布的软件包管理人员来安装这些Python要求。
基于Debian的发行版的示例:
sudo apt-get install python3.6 python3-pip python3-pychromecast python3-flask python3-psutil python3-setuptools python3-mutagen python3-gi vorbis-tools sox lame flac faac opus-tools
注意:如果您的存储库中没有python3-pychromecast ,请按照#9中的说明进行操作。
对于安装黑洞,您可以检查https://github.com/existentialaudio/blackhole,只需下载最新的DMG文件即可。
如果您有自制的,则可以使用以下方式使用啤酒桶:
brew install --cask blackhole
默认情况下,黑洞中的采样率设置为44100Hz 。如果您希望以较高的样本率流式传输,请遵循Wiki中的说明。
注意:重新采样到更高的样本率不是一个好主意。这确实是Chromecast音频设备中的问题。请参阅此线程。因此,如果您想超过44100Hz则必须以较高的采样率捕获声音。
安装ffmpeg的最简单方法是使用软件包管理器,例如:Brew,MacPorts或Fink。或Linux ,例如:APT,YUM或PACMAN。
我将在这里简要描述自制的案例。首先,您将需要在计算机中安装自制型:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
一旦准备好了,您就可以安装ffmpeg 。如FFMPEG网站上所述,并且由于能够使用Mkchromecast中的所有音频编码格式,因此最好安装ffmpeg并启用以下选项:
brew install ffmpeg --with-fdk-aac --with-tools --with-freetype --with-libass --with-libvorbis --with-libvpx --with-x265 --with-opus
当我使用debian时,安装ffmpeg的方式是:
apt-get install ffmpeg
可提供parec和ffmpeg后端的音频编码格式
| 音频编码格式 | 描述 | 笔记 |
|---|---|---|
mp3 | MPEG音频层III(默认) | 有损压缩格式(默认比特率:192K) |
ogg | Ogg Vorbis | 有损压缩格式(默认比特率:192K) |
aac | 高级音频编码(AAC) | 有损压缩格式(默认比特率:192K) |
opus | 作品 | 有损压缩格式(默认比特率:192K) |
wav | 波形音频文件格式 | 无损格式(HQ Sound) |
flac | 免费无损音频编解码器 | 无损格式(HQ Sound) |
如果您打算使用系统托盘菜单,则需要这些Python绑定。有时, pip可以安装PyQt5 ,并且pip install pyqt5就足够了。
如果这对您不起作用,我建议您使用软件包管理器安装它。
与自制的例子:
brew install pyqt5 --with-python3
apt-get install python3-pyqt5
或者,如果您愿意的话,可以自己从消息来源做。
要更新Mkchromecast资源,只需进入克隆目录即可:
git pull
或者,如果您喜欢它,则只需将--update论点传递给mkchromecast :
bin/mkchromecast --update
如果您使用的是MacOS应用程序:
Check For Updates 。/Applications/目录中替换mkchromecast.app 。 Linux用户需要在此处执行apt-get upgrade或下载最新的DEB,以及dpkg -i mkchromecast_$VERSION_all.deb 。
进入克隆的Mkchromecast目录并执行:
bin/mkchromecast
这将使用node.js (或用于Linux用户的parec )启动Mkchromecast ,并将与mp3音频编码格式一起进行流零件。 node.js工作正常,但在某些情况下,服务器可能往往会失败。在这种情况下, Mkchromecast能够自动重新启动流式/铸造过程。因此,预计会打ic。
注意:本文所述的大多数步骤对于MacOS和Linux用户都是相同的。但是,如果您在Linux中启动上面的命令,则该过程的自动化较少。在Linux中,您需要使用pavucontrol选择,除非您使用ALSA,否则称为Mkchromecast的水槽要流式传输。有关更多信息,请参见Wiki。 tl; dr?,只需检查下面的GIF即可。
注意:铸造过程与脉冲下水槽的选择无关。这意味着Mkchromecast将告诉铸件设备听您的计算机,但是在选择水槽之前不会听到声音。对于ALSA用户,这不适用。
ffmpeg后端与来自来源安装的Mkchromecast一起使用在下面使用mp3的示例:
bin/mkchromecast --encoder-backend ffmpeg
使用ffmpeg您可以修改编解码器:
bin/mkchromecast --encoder-backend ffmpeg -c aac
更改比特率和样本率:
bin/mkchromecast --encoder-backend ffmpeg -c mp3 -b 128 --sample-rate 31000
检查黑洞(仅MACOS用户)的部分以获取有关样本率的更多信息。
您还可以手动设置主机IP,这是一个有用的选项,当具有多个活动网络连接或自动IP检测失败时:
bin/mkchromecast --host 192.168.1.1
使用parec和wav音频编码格式进行铸造:
mkchromecast -c wav
还有一个可以更改bitrate选项,在这种情况下,使用ffmpeg :
mkchromecast --encoder-backend ffmpeg -c ogg -b 128
另一个要改变采样率的人:
mkchromecast --encoder-backend ffmpeg -c ogg -b 128 --sample-rate 48000
启动它:
bin/mkchromecast -t
或者
mkchromecast -t
系统托盘应用程序可以执行上述命令中的所有操作。要了解一个想法,请在此处查看YouTube视频。
您可以从命令行中播放YouTube URL(或其他网站:
bin/mkchromecast -y https://www.youtube.com/watch?v=NVvAJhZVBT
要使用此功能,您需要安装youtube-dl 。在MacOS中,可以使用Homebrew: brew install youtube-dl来完成。在基于Debian的发行版中: apt-get install youtube-dl 。
注意:您可能需要在引号之间包装URL,并且仅支持https上的URL。
您可以从命令行中无头播放任何源URL:
bin/mkchromecast --source-url SOURCE_URL
此选项对以下方式很有用:
http流源。例子:
bin/mkchromecast --source-url http://192.99.131.205:8000/pvfm1.ogg -c ogg --control
如上所述,必须用-c标志指定编解码器。
注意: .m3u或.pls尚未支持。
您可以通过启动使用该选项的Mkchromecast来控制Google Cast设备的音量--control :
bin/mkchromecast --encoder-backend ffmpeg -c ogg -b 320 --control
这将使您可以按U和D键分别向上volume up和volume down 。
系统托盘具有一个带有音量滑块的窗口,可以volume up和volume down 。
MKCHROMECAST可让您使用24-bit/96kHz高音频分辨率进行铸造。这是最大的Chromecast音频功能。支持的编解码器是: wav和flac 。尽管aac可以使用96000Hz采样速率,但比特率对应于有损耗的数据压缩格式的率。因此,以下组合可以实现此24-bit/96kHz能力:
wav + 96000Hz样本率。flac + 96000Hz样本率。参考:
现在,您可以使用Mkchromecast将视频播放给Google演员。此功能既适用于node和ffmpeg后端,也可以使用命令行。将来,它们可能是此过程的图形接口。看到这个项目。
bin/mkchromecast --video -i "/path/to/file.mp4"
bin/mkchromecast --video -i "/path/to/file.mp4" --encoder-backend node
注意:文件的格式可以是ffmpeg支持的,而不是仅限MP4。
bin/mkchromecast --video -i "/tmp/Homeland.S06E01.Fair.Game.1080p.AMZN.WEBRip.HEVC.DD5.1.x265.mkv" --subtitles /tmp/Homeland.S06E01.Fair Game.HDTV.x264-BATV.en.HI.srt
bin/mkchromecast --video --resolution 4k -i /path/to/myvideo.something --subtitles /path/to/my.srt
bin/mkchromecast --source-url http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4 -c mp4 --volume --video
bin/mkchromecast -y https://www.youtube.com/watch?v=VuMBaAZn3II --video
要杀死从控制台运行的Mkchromecast ,只需按CTRL-C或Q键退出(当传递--control标志时)。
从系统托盘启动时,请使用系统托盘中的Quit按钮。
获得更多帮助:
bin/mkchromecast -h
或安装Debian软件包时:
mkchromecast -h
node后端施放视频时,不可能既不使用--subtitle和--seek flags。mp3和aac 。我不会给予wma支持。显然,有一种播放wav方法, ogg我将在以后尝试实现。 parec和lame编码器时,播放和聆听的音频之间的延迟最多可以8秒。我建议您使用与MP3不同的东西。您也可以检查常见问题解答以获取更多信息。