2015-08-24 76 views
2

我需要獲得可用攝像頭的兼容幀率/分辨率。這怎麼可以用ffmpeg庫來完成?我試過使用avdevice的功能,但他們都似乎檢索錯誤。我無法獲得可用設備的列表。FFMPEG API - 檢索設備攝像頭信息

這是使用avfoundation在mac上完成的(並且稍後將使用dshow將其移植到windows)。

謝謝你的時間。

+0

不幸的是,「獲取名稱」和「GET幀率」的API可能還沒有被「充實」這些輸入設備。對於dshow,您可以將輸出解析爲「ffmpeg -f dshow -list_devices true -i x」,但這與目前的效果相當。可能avfoundation有一個類似的選項[?] – rogerdpack

+0

但這意味着從我的程序運行ffmpeg,用戶將不得不與應用程序一起安裝,對不對?它會工作,但我覺得有點麻煩。 – Solidus

+0

你可以將它們列爲「你自己」,因爲它是https://trac.ffmpeg.org/wiki/DirectShow#Howtoprogrammaticallyenumeratedevices – rogerdpack

回答

0

嘗試運行

ffmpeg -f dshow -list_options true -i video="Integrated Camera" 

更換「DSHOW」和「集成攝像頭」,不管你有,根據不同的平臺上。如上所述,你可以用

ffmpeg -f dshow -list_devices true -i x 

獲得視頻設備的名稱,然後,您可以管使用>操作的結果輸出到文件,或爲與處理的進一步命令行工具|運營商。例如,

ffmpeg -f dshow -list_options true -i video="Integrated Camera" > test.txt 

ffmpeg -f dshow -list_options true -i video="Integrated Camera" | grep 'pixel_format' 
+0

謝謝你的回覆。 :)這是我幾年前提出的一個老問題,但當時我並沒有在尋找一個命令行解決方案,而是一個帶有代碼的命令行解決方案,使用他們的API,這看起來還沒有實現。 – Solidus

+0

好吧,我碰到同樣的問題,並得到解決(顯然與更新的版本;) –

+0

這很好知道。 :)你可以添加你的答案,現在可以使用API​​了嗎?這樣我可以接受答案:) – Solidus