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