2014-01-10 88 views
0

這是我的問題。 我有一個服務器和客戶端應用程序。 服務器組件從數字攝像機獲取視頻流。然後服務器轉儲到網絡以供客戶端查看流。 由於我已將視頻保存在服務器上,以便以後重播每個幀的時間戳記,因此對於給定的高清視頻,它會使用太多的硬盤空間以及網絡流量上的帶寬過多,因此我必須使用h .264或其他開源壓縮標準。用於視頻壓縮的C++示例

我能夠從相機獲得每幀原始視頻流的句柄,問題是:是否有任何簡單的C/C++視頻編解碼器庫,我可以輕鬆編碼每個幀,保存並解碼每個幀在飛行中的框架?也許給我一些關於如何使用它的例子。

謝謝。

+0

H.264編碼器(或解碼器)是*不*要簡單。使用*可能很簡單,但在內部,代碼幾乎不可避免地相當複雜,因爲h.264本身非常複雜。一個可能的出發點是[h.264參考實施](http://iphome.hhi.de/suehring/tml/download/)。另一個顯而易見的可能性是像[FFMPEG](http://www.ffmpeg.org/)這樣的打包CODEC。 –

+0

您可能會嘗試通過VLC進行挖掘,以瞭解如何利用其依賴關係。 http://www.videolan.org/developers/vlc.html有一部分,「VLC使用的第三方庫」。 – Huy

回答

0

x264是一個很棒的免費*視頻編碼器。它有一個易於使用的API,一旦你有YUV240p每個視頻幀。或者,如果您嘗試使用其他編解碼器和容器,libavcodec/libavformat可能會更好。

*您使用的可能仍需要從X264的商業許可,或者MPEGLA