我最近沒有太多時間來照顧該項目。如果您有興趣幫助,請在#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不同的東西。您也可以檢查常見問題解答以獲取更多信息。