域名是什么?,seo关键词首页排名,百度分享wordpress插件下载,网站设计师主要做什么Miracast/WifiDisplay概念介绍 Miracast
Miracast是由Wi-Fi联盟于2012年所制定#xff0c;以Wi-Fi直连#xff08;Wi-Fi Direct#xff09;为基础的无线显示标准。支持此标准的消费性电子产品#xff08;又称3C设备#xff09;可透过无线方式分享视频画面#xff0c;例如…Miracast/WifiDisplay概念介绍 Miracast
Miracast是由Wi-Fi联盟于2012年所制定以Wi-Fi直连Wi-Fi Direct为基础的无线显示标准。支持此标准的消费性电子产品又称3C设备可透过无线方式分享视频画面例如手机可透过Miracast将影片或照片直接在电视或其他设备播放而无需任何连接线也不需透过无线热点APAccess Point。
Wi-Fi Direct
Wi-Fi直连英语Wi-Fi Direct之前曾被称为Wi-Fi点对点Wi-Fi Peer-to-Peer是一套无线网络互连协议让wifi设备可以不必透过无线网络接入点Access Point以点对点的方式直接与另一个wifi设备连线进行高速数据传输。这个协议由Wi-Fi联盟发展、支持与授与认证通过认证的产品将可获得Wi-Fi CERTIFIED Wi-Fi Direct®标志。
Wi-Fi Display
Wi-Fi Display是Wi-Fi联盟制定的一个标准协议它结合了Wi-Fi标准和H.264视频编码技术。利用这种技术消费者可以从一个移动设备将音视频内容实时镜像到大型屏幕随时、随地、在各种设备之间可靠地传输和观看内容。
Miracast实际上就是Wi-Fi联盟对支持WiFi Display功能的设备的认证名称产品通过认证后会打上Miracast标签。
使用场景图 最经典场景那就是 手机投屏到电视或者显示器端即可以把小屏幕设备画面声音投屏到 大屏端上图还有提到一个Source和Sink概念。
Sink Source 如下图所示
Miracast可分为发送端与接收端。Source端为Miracast音视频数据发送端负责音视频数据的采集、编码及发送。而Sink端为Miracast业务的接收端负责接收Source端的音视频码流并解码显示其中通过Wi-Fi Direct技术进行连接。
WiFiDisplay实现核心技术图
如果实现一个最简单的WiFiDisplay核心部分会涉及如下部分 其实WiFiDisplay和投屏本质没啥差别主要就是把音视频数据传递给对方对方接收后解码显示但是WifiDisplay不是一直简单的私有协议而是一种认证公共协议即sink端和source端可能不是自己公司产品设备但是也可以实现投屏。
1、设备链接部分–使用WIFI P2P即可以不需要依赖热点
2、视频部分–使用一个类似虚拟屏幕WiFiDisplay对这个屏幕画面进行编码成h264数据
3、声音部分–使用内录接口REMOTE_SUBMIX录制系统自带发出声音可以编码aac也可以直接pcm
4、传输协议-使用标准rtsp协议进行传输音视频数据包装到rtp中发送
视频验证部分
dumpsys display后可以看到对应的display 同时从perfetto上vsync进行present时候也可以看到两个display
声音部分验证
采用 dumpsys media.audio_flinger命令查看输出的音频情况
系统播放的声音都被输入到了AUDIO_DEVICE_OUT_REMOTE_SUBMIX设备 负责录制系统声音的输入设备就是AUDIO_DEVICE_IN_REMOTE_SUBMIX
协议部分验证
抓包wireshark工具安装
ubuntu环境wireshark安装
则使用如下命令安装
sudo apt update
sudo apt install wireshark安装后运行wireshark
sudo wireshark注意这里要使用sudo不使用则很多网卡设备和lo都看不到 但是因为WiFiDisplay开发调研的话我们主要对手机设备所以不是在ubuntu电脑上进行的抓包而是需要到手机上抓包后使用ubuntu的wireshark打开分析而已。
手机抓包方式
首先需要root权限。 以下是基本的操作步骤 安装tcpdump工具可以从网上下载对应Android设备架构如armeabi, arm64-v8a, x86等的tcpdump二进制文件。将其放置在设备的/system/xbin/或者其他已经在PATH环境变量中的目录下。获取root权限使用已经root过的设备或者使用adb root命令来获取root权限。使用tcpdump命令抓包通过adb shell进入设备的shell环境。adb shell ifconfig
lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope: HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 TX bytes:0 dummy0 Link encap:Ethernet HWaddr 16:13:15:9b:8a:94inet6 addr: fe80::1413:15ff:fe9b:8a94/64 Scope: LinkUP BROADCAST RUNNING NOARP MTU:1500 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:157 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 TX bytes:10990 wlan0 Link encap:Ethernet HWaddr f6:ed:b6:e6:93:26 Driver icnssUP BROADCAST MULTICAST MTU:1500 Metric:1RX packets:380411 errors:0 dropped:6 overruns:0 frame:0 TX packets:651256 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:19939920 TX bytes:687241648 rmnet_data0 Link encap:UNSPEC inet6 addr: fe80::e09a:e739:4a14:c7f0/64 Scope: LinkUP RUNNING MTU:2000 Metric:1RX packets:384 errors:0 dropped:0 overruns:0 frame:0 TX packets:367 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:43754 TX bytes:30654 rmnet_ipa0 Link encap:UNSPEC UP RUNNING MTU:2000 Metric:1RX packets:363 errors:0 dropped:0 overruns:0 frame:0 TX packets:367 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:48362 TX bytes:30654 p2p0 Link encap:Ethernet HWaddr 5e:e4:4f:be:f3:d4 Driver icnssinet addr:192.168.49.1 Bcast:192.168.49.255 Mask:255.255.255.0 inet6 addr: fe80::5ce4:4fff:febe:f3d4/64 Scope: LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:142 errors:0 dropped:0 overruns:0 frame:0 TX packets:64114 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3000 RX bytes:41602 TX bytes:73275825 选着合适网卡
adb shell tcpdump -i p2p0 -w /sdcard/capture.pcap请注意抓包可能会影响设备的正常网络性能谨慎使用。此外不同版本的Android和设备硬件可能需要不同的tcpdump版本和参数。
抓包分析WiFiDisplay数据传输rtsp协议
可以看到整个WiFiDisplay的数据传递流程如下
1、rtsp进行会话描述协议 2、rtp传输megp-ts流megp-ts流包裹了相关音视频数据
更多framework详细代码和资料参考如下链接 投屏专题部分 https://mp.weixin.qq.com/s/IGm6VHMiAOPejC_H3N_SNg halperfettosurfaceflinger
https://mp.weixin.qq.com/s/LbVLnu1udqExHVKxd74ILg 其他课程七件套专题 点击这里 https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
视频试看 https://www.bilibili.com/video/BV1wc41117L4/
参考相关链接 https://blog.csdn.net/zhimokf/article/details/137958615
更多framework假威风耗androidframework007