2011-10-24 88 views
0

正常情況下,RTSP視頻流的快照,我可以得到一個還是從IP攝像機快照與供應商提供的網址。然而,以這種方式服務的jpeg質量不夠好,供應商表示沒有提供其他圖像格式的服務快照或更小/無損壓縮的功能。獲取從一個IP攝像頭

我注意到當我打開rtsp H264從照相機與VLC流然後手動採取截圖,所得到的圖像現在沒有先前觀察到的JPEG工件。

的問題是,我將如何從與C++程序的h264碼流得到這些優異的快照?我需要對圖像執行多種操作(註釋,裁剪,人臉識別),但必須在獲得儘可能高質量的初始圖像後才能進行操作。

(注意,這是關係到我的previous question。我獲得的JPEG圖像,且捲曲,但現在想用這個新如果可能的話,以取代快照吸氣。我在Linux上重新運行的Fedora 11)

回答

0

你需要一個RTSP客戶端實現連接到相機,開始接收視頻輸入,整理/解包的視頻幀,然後你會得到它,並根據需要保存/處理/本。

你可能想向live555 library看作是一個衆所周知的RTSP庫/ implemetnation。

+0

糾正我,如果我的理解是錯誤的:使用RTSP客戶端發送SETUP請求,然後PLAY請求;將視頻存儲在內存中的某個緩衝區中;將緩衝區中的任何內容解碼爲某種無損圖像格式;從解碼圖像中獲取一幀;做東西();重新填充緩衝區時重複。 – Morpork

+0

這基本上是正確的,但省略了許多細節。使用JPEG over HTTP,您可以在其中發送請求並將整個事件恢復。在RTSP中,conent可以通過TCP或UDP,多於一種格式描述符來傳遞,以便在解包中找到H.264,以獲得原始的H.264比特流。不是火箭科學,但仍不像JPEG快照那麼簡單。 –