一、背景介紹
虛擬攝像頭,顧名思義,就是利用軟件技術(shù)虛擬出一個攝像頭硬件設(shè)備供用戶使用。當(dāng)我們需要對視頻圖像進(jìn)行處理再輸出時,虛擬攝像頭就具備非常大的價值了。關(guān)于如何在Windwos上實現(xiàn)一個虛擬設(shè)備的資料已經(jīng)非常豐富了,Windows Driver Kit里面也有非常多的幫助文檔。這篇博文主要總結(jié)了在Mac下開發(fā)虛擬攝像頭的一些經(jīng)驗。Mac下的虛擬攝像頭產(chǎn)品其實也有不少,例如CamTwist, CamMask, CamWiz, ManyCam等。但是關(guān)于如何在Mac下開發(fā)虛擬攝像頭設(shè)備的資料卻是異常匱乏。通過一番搜索后才找到一個關(guān)鍵字:CoreMediaIO. 經(jīng)過了解,CoreMediaIO是Mac下的一個framework,主要用于對視頻圖像進(jìn)行處理。而CoreMediaIO framework有一個Device Abstraction Layer(DAL),它類似與Mac下CoreAudio的Hardware Abstraction Layer(HAL)。HAL主要是用來處理音頻硬件發(fā)送的音頻流的,而DAL則是用來處理視頻設(shè)備的視頻流的。因此,利用DAL插件框架,可以模擬出一個攝像頭設(shè)備供上層用戶使用。
CoreMediaIO DAL有一個示例項目,這個項目模擬出了一個名為“Sample”的設(shè)備,通過底層kext模塊提供的模擬數(shù)據(jù)實現(xiàn)視頻幀的傳遞。這個DEMO要真正使用起來的話,有一些需要注意的地方。在Demo中的README文件中推薦使用如下命令安裝預(yù)編譯好的程序:
延伸閱讀
我想了解如何學(xué)習(xí) |