天天看點

Linux音視訊(V4L2運作原理)

Linux核心用一個被稱為V4L2的機制來管理攝像頭圖像資訊,它的核心工作原理就像日本料理店常見的流轉餐桌,大廚将美食不斷放到空盤子裡,客人不斷拿來吃。

拓展:

在核心中,攝像頭所捕獲的視訊資料,我們可以通過一個隊列來存儲,我們所做的工作大緻是這樣的:首先配置好攝像頭的相關參數,使之能正常工作,然後申請若幹個核心視訊緩存,并且将它們一一送到隊列中,就好比三個空盤子被一一放到傳送帶上一樣。

Linux音視訊(V4L2運作原理)

然後我們還需要将這三個核心的緩存區通過mmap函數映射到使用者空間,這樣我們在使用者層就可以操作攝像頭資料了,緊接着我們就可以啟動攝像頭了開始資料捕獲,每捕獲一幀資料我們就可以做一個出隊操作,讀取資料,然後将讀過資料的核心緩存再次入隊,依次循環。