Miracast由WiFi聯盟制定,以WiFi-Direct、IEEE802.11為無線傳輸标準,允許手機向電視或其他接收裝置進行無線投送視訊、圖檔。
Android 手機内置miracast支援,如果像智能電視,機頂盒,投屏器之類支援這個協定,就可以把手機桌面直接投屏到大螢幕上。
這裡我們測試是 ubuntu 下miraclecast,看日期8天前還有在更新。
編譯軟體
安裝依賴軟體庫
sudo apt install cmake libglib2.0-dev libudev-dev libsystemd-dev libreadline-dev check libtool
注意它的renderer是gstreamer,是以要想運作正常還得安裝gstreamer一套東西,否則運作起來不顯示
sudo apt-get install gtk-doc-tools libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
進到源碼目錄編譯,基本一次性通過
mkdir build
cd build
../autogen.sh g --prefix=/usr
make
sudo make install
Ubuntu 作為接收端 sink
這裡運作要切斷目前的wifi連接配接,打開wifi p2p.
#切斷目前連接配接
systemctl stop NetworkManager.service
systemctl stop wpa_supplicant.service
#打開miracast wifi 服務
miracle-wifid &
#打開sink接收端控制器
miracle-sinkctl
我把這個寫入test.sh 腳本中,
在指令行下運作
sudo ./test.sh
這個miracle-sinkctl 的就sink端的軟體,運作後需要運作一系列指令來操作
手機實測
這裡分别用不同Android手機測試,有能連接配接上,有不能連接配接上。
以小米Note3為例,在打開投屏後,會顯示在哪一個接口上,會顯示找到熱點miraclecast,
連接配接後即在Ubuntu桌面顯示一個視窗
測試完後,重新打開wifi
sudo systemctl start NetworkManager.service
sudo systemctl start wpa_supplicant.service