我有一個捕獲卡可以捕獲嵌入音頻的SDI視頻。我有一個Linux驅動程序的源代碼,我正在嘗試增加video4linux2支持。我的改變是基於vivi的例子。是否可以使用v4l2從同一設備讀取音頻和視頻?
我碰到的問題是,我可以找到的所有例子只處理視頻或只處理音頻。即使在客戶端,一切似乎都認爲v4l只是視頻,就像ffmpeg的libavdevice一樣。
我是否需要讓我的驅動程序創建兩個獨立的設備,一個v4l2設備和一個alsa設備?看起來,這使得保持音頻和視頻同步的工作更加困難。
我更喜歡某種方式爲驅動程序和應用程序之間傳遞的每個緩衝區(通過v4l2的mmap接口)包含一個幀,加上一些與該幀匹配(相對於時間)的音頻。
或者也許每個緩衝區都包含一個標誌,指示它是視頻幀還是音頻塊。然後可以使用緩衝區上的時間戳來進行同步。
但是我沒有看到用V4L2 API規範做到這一點的方法,也沒有看到從單個設備讀取音頻和視頻的支持v4l2的應用程序(gstreamer,ffmpeg,轉碼等)的任何示例。
在這種情況下是否有可能同步視頻和音頻? – 2012-01-13 07:14:09