0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

iOS Airplay Screen Mirroring 同屏技術(shù)詳解

LiveVideoStack ? 來源:未知 ? 作者:鄧佳佳 ? 2018-03-20 15:02 ? 次閱讀

投屏技術(shù)已經(jīng)被大量用在身邊的產(chǎn)品,比如電視投屏,投影儀,視頻會議產(chǎn)品中。 在iOS平臺外的其他平臺中都已經(jīng)有非常成熟的標(biāo)準(zhǔn)和實(shí)現(xiàn)。但在封閉的蘋果iOS和Mac系統(tǒng)中,蘋果使用私有的Airplay協(xié)議進(jìn)行多屏互動,只開放給自己生態(tài)中的產(chǎn)品。對此相關(guān)技術(shù)限制比較嚴(yán)格,甚至在iOS9中加上了更嚴(yán)格的加密算法,直接導(dǎo)致很多投屏的產(chǎn)品不可用。

iOS中的投屏方案

1.ReplayKit

iOS9中引入了ReplayKit, 讓開發(fā)者有了一定的獲取屏幕數(shù)據(jù)的能力. 并在iOS10和iOS11中繼續(xù)擴(kuò)展了ReplayKit的能力. 但還是有很大的限制, 比如在使用ReplayKit的api時(shí)只能錄制當(dāng)前應(yīng)用的應(yīng)用, 無法在應(yīng)用進(jìn)入后臺之后繼續(xù)錄屏. 如果使用系統(tǒng)級別的屏幕錄制,又無法獲得每一幀的數(shù)據(jù),只能獲得最后錄取的單個(gè)視頻. 這樣對第三方的開發(fā)有了非常大的限制.

2.Airplay

Airplay是蘋果提供的一種多屏互動技術(shù), 可以將音頻照片,視頻, 屏幕從iOS設(shè)備或者M(jìn)ac電腦上投射到支持airplay接受的設(shè)備上,如Apple TV。這樣可以將小屏映射到大屏,可以無線音樂,可以圖片分享等等. 但是Airplay屬于蘋果私有協(xié)議方案,設(shè)備間的協(xié)商與傳輸過程都進(jìn)行了加密處理,并不能用于其他平臺中。我們已經(jīng)完整的逆向了Airplay的全部協(xié)議棧,并破解了其加密方案,可以提供跨平臺Airplay接收方案。這樣可以方便實(shí)現(xiàn)跨平臺的多屏共享。

同時(shí),通過研究,我們也可以通過Airplay Mirroring技術(shù),做到在iPhone上把自己的屏幕的內(nèi)容投送給當(dāng)前iPhone,在某些情況下這種airplay的破解卻非常有用處,比如手游直播。這中投屏方案使用了iOS原生的投屏能力,并且是完全的軟件方案,非常方便進(jìn)行集成和使用。

Airplay Mirroring實(shí)現(xiàn)原理

下面將介紹Airplay Mirroring接收端的實(shí)現(xiàn)原理,并揭示相關(guān)協(xié)議交互過程。

Airplay Mirroring客戶端的同屏交互過程,分為三個(gè)主要步驟:

設(shè)備廣播與發(fā)現(xiàn)

信息交互與能力協(xié)商

音視頻數(shù)據(jù)接收與解擾

設(shè)備廣播與發(fā)現(xiàn)

Airplay設(shè)備間的廣播與發(fā)現(xiàn)通過Bonjour協(xié)議進(jìn)行。Bonjour也被稱為ZeroConf, mDNS等,可以用來在局域網(wǎng)內(nèi)進(jìn)行數(shù)據(jù)記錄廣播與發(fā)現(xiàn)。該協(xié)議比較成熟,網(wǎng)上可以找到諸多介紹。對于實(shí)現(xiàn)的Airplay(包括Mirroring)接收端而言,首先需要注冊兩類服務(wù),即airtunes和airplay。 Airtunes服務(wù)主要用來處理廣播視音頻接收能力協(xié)商,是最為重要的服務(wù)內(nèi)容,對應(yīng)Bonjour記錄名稱為'_raop._tcp',注冊服務(wù)端口不限,一般為了避免沖突,建議采用較高的端口數(shù);Airplay服務(wù)主要用來兼容傳統(tǒng)的streaming等服務(wù),對應(yīng)記錄名稱為'_airplay._tcp',注冊端口一般為7000。

具體的服務(wù)廣播內(nèi)容,可以進(jìn)行局域網(wǎng)抓包,找到對應(yīng)記錄內(nèi)容。

當(dāng)接收端通過Bonjour廣播器服務(wù)能力后,發(fā)送端(如iPhone等各類iOS設(shè)備)就可以發(fā)現(xiàn)該接收端。

信息交互與能力協(xié)商

當(dāng)發(fā)送端發(fā)現(xiàn)接收端后,可以開始信息交互與能力協(xié)商過程。該部分協(xié)議協(xié)議格式類似rtsp協(xié)議格式。主要分為兩個(gè)階段,設(shè)備匹配與和能力協(xié)商。

當(dāng)發(fā)送端鏈接服務(wù)端后,設(shè)備匹配過程即開始。通信雙方會進(jìn)行fairplay加密協(xié)議進(jìn)行信息交換,當(dāng)完成信息交換后,客戶端后續(xù)必須使用這部分信息來處理加密過的密鑰,才能獲得進(jìn)一步視音頻解密密鑰。在iOS9之后,在fairplay過程之前,增加一個(gè)設(shè)備匹配過程,即pair-setup、pair-verify過程,其主要算法是較為標(biāo)準(zhǔn)的非對稱公鑰交換算法。

當(dāng)兩端成功匹配后,開始進(jìn)行能力協(xié)商與信息交換,這些信息包括,設(shè)備名稱、代號,音視頻接收相關(guān)端口配置,視頻接收能力以及加密密鑰等,相關(guān)信息使用binary plist格式進(jìn)行封裝。

可以參考https://github.com/espes/Slave-in-the-Magic-Mirror找到相關(guān)協(xié)議交互的一些細(xì)節(jié)。

音視頻數(shù)據(jù)接收與解密

雙方協(xié)商成功后,發(fā)送端開始向接收端發(fā)送視音頻數(shù)據(jù),mirroring數(shù)據(jù)是通過TCP進(jìn)行發(fā)送,為h.264 ES流格式。音頻是通過RTP協(xié)議進(jìn)行發(fā)送,根據(jù)內(nèi)容的不同音頻編碼為ALAC或者AAC-ELD。

音視頻流都是通過AES進(jìn)行了加密處理,密鑰需要通過上面一步的進(jìn)過信息交互后的fairplay模組對setup過程中接收到的加密密鑰進(jìn)行解密,獲得的AES解密需要的IV和KEY,然后經(jīng)過AES解擾,即可以獲得最終的視音頻清流。

其他需要注意的地方

Airplay沒過Session傳送過來的視頻h264碼流,只有開頭一個(gè)關(guān)鍵幀. 因此這種情況并不適合直播這種需要固定GOP的場景. 還需要做進(jìn)一步的轉(zhuǎn)碼的工作,或者直接在壓縮域進(jìn)行處理,獲得合理的GOP結(jié)構(gòu)。

我們對Airplay相關(guān)協(xié)議的逆向工程已經(jīng)封裝成了跨平臺的類庫和框架, 支持windows/Mac/Android/iOS/linux, 在自己內(nèi)部產(chǎn)品中使用已經(jīng)非常穩(wěn)定, 如果有需要可以聯(lián)系我們. 也歡迎各類技術(shù)與應(yīng)用場景討論。我的郵箱leeoxiang#http://gmail.com

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • iOS
    iOS
    +關(guān)注

    關(guān)注

    8

    文章

    3399

    瀏覽量

    152348

原文標(biāo)題:iOS Airplay Screen Mirroring 同屏技術(shù)詳解

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏
  • 时间带走一切1234561

評論

相關(guān)推薦
熱點(diǎn)推薦

CY7C65215使用IOS中的USB CDC UART類驅(qū)動程序是否可以與IOS一起工作?

我知道 CY7C65215 沒有適用于 IOS 的驅(qū)動程序。但是,使用 IOS 中的 USB CDC UART 類驅(qū)動程序是否可以與 IOS 一起工作? 我們正在考慮在我們的設(shè)備中安裝 CY7C65215 而不是 FTDI US
發(fā)表于 04-30 07:57

DLPDLCR230NPEVM如何更改splash screen

做項(xiàng)目需要投影儀投影幾張固定的圖片,查閱了論壇中有人有相似的問題,他的是2000evm。咨詢了他,他尋求了技術(shù)支持重新生成了固件,用SPI燒寫器更換固件就可以改變內(nèi)置的splash screen
發(fā)表于 02-21 15:31

如何通過IIC對DLPDLCR2000 evm評估板中修改splash screen?

預(yù)實(shí)現(xiàn)功能:控制投影儀輸出4中不同大小的1:1圖像。 實(shí)現(xiàn)方案:查閱了相關(guān)資料,了解DLPDLCR可以存儲4張splash screen,準(zhǔn)備通過IIC修改splash screen圖像,然后通過
發(fā)表于 02-21 07:02

連接上DLP4710 EVM之后,想要更改GUI的splash screen出現(xiàn)報(bào)錯(cuò)怎么解決?

現(xiàn)在連接上DLP4710的EVM之后,想要更改GUI的splash screen,但是最終報(bào)警:Validate selected splash image Files error! 請問我的步驟
發(fā)表于 02-19 07:07

為什么 Chromecast、Airplay 和藍(lán)牙不能和睦相處?

的 DigiKey 博客] ,就會知道我是向后兼容的支持者,也是格式戰(zhàn)的批評者。不過我也明白,關(guān)于生態(tài)系統(tǒng)的工程討論往往歸結(jié)為預(yù)算、技術(shù)、硬件、物流、編程、知識產(chǎn)權(quán)和規(guī)劃。以 Chromecast、Airplay、藍(lán)牙和 Wi-Fi 為代表的無線通信就是很好的例子。 兼容
的頭像 發(fā)表于 01-25 16:53 ?421次閱讀
為什么 Chromecast、<b class='flag-5'>Airplay</b> 和藍(lán)牙不能和睦相處?

迅為RK3588S開發(fā)板多顯多異顯多異觸

迅為RK3588S開發(fā)板多顯多異顯多異觸
的頭像 發(fā)表于 11-29 14:59 ?715次閱讀
迅為RK3588S開發(fā)板多<b class='flag-5'>屏</b><b class='flag-5'>同</b>顯多<b class='flag-5'>屏</b>異顯多<b class='flag-5'>屏</b>異觸

OBOO鷗柏液晶拼接真智能,交互,觸控查詢輕松應(yīng)對多

觸摸
鷗柏科技
發(fā)布于 :2024年10月07日 21:22:02

LED透明顯示生產(chǎn) 原理 技術(shù) 應(yīng)用

LED透明顯示常指的是硬燈條透明,具有輕薄、通透、播放影像通透絢麗的特點(diǎn)。是對LED顯示產(chǎn)品應(yīng)用的有效延伸和拓展,主要應(yīng)用在建筑玻璃幕墻、櫥窗等領(lǐng)域。下面從生產(chǎn)、原理、
的頭像 發(fā)表于 08-29 15:01 ?834次閱讀

MD9360多顯異顯應(yīng)用實(shí)例

MD9360-T核心板多顯、異顯技術(shù),讓你的顯示學(xué)會分身術(shù)。MD9360-EV-Board評估板(如圖1所示)是致遠(yuǎn)電子精心推出的集工控與評估于一身的評估底板。該評估底板可選搭配MD9360-T
的頭像 發(fā)表于 08-07 08:25 ?557次閱讀
MD9360多<b class='flag-5'>屏</b><b class='flag-5'>同</b>顯異顯應(yīng)用實(shí)例

組態(tài)和串口的區(qū)別是什么

組態(tài)和串口是兩種不同類型的顯示,它們在功能、應(yīng)用場景、工作原理等方面存在一些區(qū)別。 定義和概念 組態(tài)(Configuration Scree
的頭像 發(fā)表于 08-01 15:16 ?3647次閱讀

星智能即將亮相:上法蘭西大區(qū)投資交流會、長安軟件&amp;amp;技術(shù)交流日、ATC汽車軟件與安全技術(shù)

星一周展會TOSUN.EXHIBIT01/上法蘭西大區(qū)投資交流會2024年7月15日(周一),上法蘭西大區(qū)投資交流會將在浙江嘉興·敏實(shí)集團(tuán)總部舉辦。星智能受邀參加本次交流會活動,將攜最新技術(shù)
的頭像 發(fā)表于 07-13 08:21 ?542次閱讀
<b class='flag-5'>同</b>星智能即將亮相:上法蘭西大區(qū)投資交流會、長安軟件&amp;amp;<b class='flag-5'>同</b>星<b class='flag-5'>技術(shù)</b>交流日、ATC汽車軟件與安全<b class='flag-5'>技術(shù)</b>周

IOS12以上搜索不到藍(lán)牙是怎么回事?

現(xiàn)在是這樣的,IOS12以下測試能夠搜索到設(shè)備藍(lán)牙。但是IOS12以上就都搜索不到。 是什么原因呢?
發(fā)表于 07-02 08:03

蘋果在歐盟面臨挑戰(zhàn):新技術(shù)推遲與監(jiān)管壓力

近日,科技巨頭蘋果公司宣布了一個(gè)令人意外的決定:今年將不會在歐洲市場發(fā)布其備受矚目的新功能——Apple Intelligence、iPhone Mirroring以及SharePlay Screen Sharing。這一決定的背后,是歐盟新頒布的《數(shù)字市場法》所帶來的巨
的頭像 發(fā)表于 06-24 15:37 ?834次閱讀

茂線性馬達(dá)談2023全球折疊出貨量

近幾年,折疊正成為越多越多成功人士的新選擇,像小編的老板就用的華為的折疊手機(jī),每每老板掏出手機(jī)的那一刻,小編不僅在心里暗暗感嘆一句“有錢真香”。 那么,大家知道折疊手機(jī)去年的一個(gè)出貨量嗎?據(jù)
的頭像 發(fā)表于 05-23 08:13 ?462次閱讀
<b class='flag-5'>同</b>茂線性馬達(dá)談2023全球折疊<b class='flag-5'>屏</b>出貨量

貞光科技代理品牌 - 紫光

北京貞光科技有限公司是紫光芯產(chǎn)品的代理商和解決方案供應(yīng)商。我們提供紫光芯芯片硬件、OS平臺、軟件SDK產(chǎn)品的銷售和技術(shù)服務(wù),以及多種封裝形式和個(gè)性化定制服務(wù)。在選型階段,我們可安排原廠技術(shù)
的頭像 發(fā)表于 05-21 15:08 ?557次閱讀
貞光科技代理品牌 - 紫光<b class='flag-5'>同</b>芯

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會員交流學(xué)習(xí)
  • 獲取您個(gè)性化的科技前沿技術(shù)信息
  • 參加活動獲取豐厚的禮品