Kinect視頻的保存和回放(二)

目的:保存kinect的視頻數據,並回放,以便於動作的剪裁
進展:完成了視頻的保存(avi格式),回放以及目標段的剪裁
現存問題:文件沒有經過壓縮,數據量大

     之前的程序啓動後就開啓K,要關閉K就必須結束程序,這樣的缺點:a)不太人性化,沒體現自主性;b)在後續視頻的回放剪裁階段不需要K。因此,加入如下圖(fig.1)菜單。程序啓動後,選擇啓動K或回放之前錄製好的視頻;當不需要K工作時,可以在此菜單中關閉K。

fig.1控制K菜單

     因爲視頻的錄製和結束與K的啓動和關閉是同步的,當退出K後(程序不退出),回放錄製好的視頻,在回放的過程中選擇感興趣的部分(點擊按鈕)。在回放的過程中,如fig.2所示,可以拖動視頻下方的滑動塊,控制視頻的播放。


fig.2 視頻錄製和回放

收穫:

 1)內存泄漏   內存泄漏就是在程序執行階段不斷地(一般在循環中)去申請內存,使用完了也不主動釋放,導致內存被蠶食,直到系統不能再分配內存空間。在開始編寫視頻回放階段的時候,對視頻流和內存的關係沒有了解清楚,導致不斷吃內存,直到死機。內存以大約每秒0.02G的速率攀升,內存使用記錄翹起,內存很累的樣子,這就是一個“病毒”啊。結束程序後,把代碼重新審視了一遍,也特別注意了new後的delete。最後查明不是我寫的部分吃掉了內存,而是在按幀讀取視頻數據時,每幀都去建立幀(PGETFRAME)與流(PAVISTREAM)的關係,這一過程的操作佔用了內存。問題的解決辦法是:第一幀建立幀和流的關係,其他的就不必了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章