簡體   English   中英

同步截屏(ffmpeg)和從網絡攝像頭(OpenCV)捕獲

[英]Synchronizing screencasting (ffmpeg) and capturing from the webcam (OpenCV)

根據之前的問題,我正在嘗試構建一個簡單的眼動儀。 決定從Linux版本開始(運行Ubuntu)。

為了完成此任務,應組織屏幕廣播和網絡攝像頭捕獲,以使兩個流中的幀彼此完全匹配,並且每個流中的幀總數完全相同。

截屏fps完全取決於相機的fps,因此,每次從網絡攝像頭獲取圖像時,我們都可以抓取一個屏幕框架並保持快樂。 但是,所有用於快速截屏的工具(例如ffmpeg)都將返回.avi文件作為結果,並要求啟動已知的fps。

從另一方面來說,像Java + Robot或ImageMagick這樣的工具似乎需要大約20毫秒才能返回.jpg屏幕截圖,這對於該任務來說非常慢。 但是,每次抓住網絡攝像頭框架並提供所需的同步后,都可能會立即請求它們。

因此,子問題是:

  1. 美元攝像機的幀頻在單個會話中是否有所變化?
  2. 是否有任何工具可以提供逐幀快速的屏幕廣播?
  3. 僅在程序啟動此請求時,有什么方法可以使ffmpeg將新幀推送到.avi文件嗎?

對於我的任務,我可以使用C ++或Java。

實際上,我是接口設計師,而不是驅動程序程序員,而且該任務似乎很底層。 如有任何建議和建議,我將不勝感激!

將OpenCV的HighGUI中的cvGetCaptureProperty(CvCapture* capture, int property_id)函數與property_id = CV_CAP_PROP_FPS以確定網絡攝像頭每秒捕獲的幀數。

使用示例:

CvCapture *capture = 0;
double fps = 0.0;

capture = cvCaptureFromCAM( 0 );
fps = cvCaptureProperty(capture, CV_CAP_PROP_FPS);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM