2014-08-31 60 views
2

快速播放我想播放一個大型視頻(1080P 30fps的,〜100K幀)內MATLAB,這樣我可以:Matlab的:大型視頻

  • 播放/暫停視頻
  • 跳到一個給定的幀號
  • 獲得當前幀號

這樣做的目的是爲了在一個簡化的方式標註有(全局)幀標籤每個視頻幀。

爲了實現這一點,我曾嘗試:

  • VideoReader:快速重放(〜30fps)的,慢緩衝(〜5幀,存儲器限制)
  • vision.VideoFileReader:慢速播放(< 5fps的),流媒體(沒有/最小緩衝?)
  • imread/imshow(遍歷圖像序列):慢速播放< 5fps的),流

我使用的OS X的Matlab的R2014a 64位

我可以使用另一種方法不顯著緩衝開銷獲得快速播放(〜30fps)的?

+0

你是完全以編程方式完成此註釋,部分是用戶輸入,還是完全手動完成?這是否意味着您修改了視頻數據,或者您是否需要查找給定的幀並將其位置保存到數組或甚至是外部文件? 「緩衝」是什麼意思?此外,是'imread' /'imshow'選項你自己的代碼?我想知道在實施中是否會出現性能問題? – horchler 2014-08-31 13:12:28

+1

你可以使用外接播放器嗎? [QuickTime Player 7](http://support.apple.com/kb/DL923?viewlocale=zh_CN&locale=zh_CN)(經典播放器,而不是較新的內置版本)可以顯示幀編號並允許您跳轉到特定的框架。點擊左下角的時間碼,然後從下拉菜單中選擇「幀號」。然後,您可以輸入幀號字段以跳轉到特定的幀。選擇播放頭,箭頭鍵將允許您增加和減少幀號。 – horchler 2014-08-31 13:14:52

+0

感謝horchler的評論。註釋完全是手動驅動的,但我想在流程周圍構建一個簡單的UI,以防止/減少人爲錯誤,並允許使用標籤回放來驗證正確的標籤。視頻數據未被修改 - 標籤被導出到外部文件。 「緩衝」是指在顯示之前在存儲器中預加載幀。我正在調用內置於Matlab的圖像處理工具箱中的imread/imshow函數。從性能分析來看,這些功能存在瓶頸。 – Josh 2014-08-31 14:05:39

回答

0

閱讀視頻的速度取決於視頻格式。如果您使用Motion JPEG視頻,則可以加快vision.VideoFileReader的速度。

另一個問題是回放。你在用什麼?你有沒有試過vision.VideoPlayer?也有vision.DeployableVideoPlayer,這可能會更快,但它只適用於Windows。