作者skyzer (故事的最後...)
看板MATLAB
標題[問題] 用mmreader讀影片但記憶體不足
時間Mon Jan 21 22:46:03 2013
各位板友你們好
之前有在板上問過有關Matlab該如何讀wmv檔的問題
板友們是推薦mmreader和VideoReader(2012版新增)這兩個function
用在時間不長,或是解析度不高的影片上的話是ok
但如果影片資料過大就很容易佔滿記憶體
使得用影片無法讀進Matlab中
想請問如果碰上這種狀況時,有什麼好方法能夠解決呢?
謝謝。
----------------------------------------------------------------------
*補充說明:
我的應用是這樣的:先將影片讀進來做處理,之後再存回影片
但我現在碰上的問題是用mmreader讀進來的資料就
過大
或是
在處理過程中會導致資料量過大、記憶體不足的情況
主要不是轉存的問題
所以我的疑問就在於
像這種要對影片做處理,並且還需要保持整個影片的架構的方式
如果碰上
記憶體不足的情況時
大家會建議怎麼做呢?例如:分段處理之後再合併
畢竟要把整部影片都讀進來再做處理有點不太實際
謝謝。
PS.
我的後續動作是將影片轉成frame,之後再做處理
因為是醫學相關的應用,所以資料最好是保持原始內容,所以才用直接讀檔的方式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.103.41
※ 編輯: skyzer 來自: 140.123.103.41 (01/21 22:49)
1F:推 gozelee:有軟體可以直接將影片轉成圖片阿... 01/22 00:58
2F:→ skyzer:用軟體轉圖片的話還要考慮轉換過程是否有對data做處理 例如 01/22 01:18
3F:→ skyzer:wmv轉成jpg的話因為格式不相同 轉出來的data可能有經過壓縮 01/22 01:19
4F:→ skyzer:而造成原始資料的喪失 為了能保持原本的資料所以才用直接讀 01/22 01:20
5F:→ skyzer:的方式 01/22 01:20
6F:→ YoursEver:video本身就被壓縮過; 如果只是不想再轉存圖檔多壓一次, 01/22 04:47
7F:→ YoursEver:直接把mmreader的object內的影像資料另外轉存就好. 01/22 04:48
8F:→ YoursEver:matlab help裡面已經附了該如何抓出單一frame的範例碼. 01/22 04:49
9F:→ YoursEver:轉存時可以存bmp,這樣就不用擔心被多壓一次. 01/22 04:49
10F:→ skyzer:感謝您的回答
11F:→ skyzer:但我主要的困難比較不是在轉存的部份
12F:→ skyzer:詳細內容我新增在原文後面的補充說明內
13F:→ skyzer:謝謝你。
※ 編輯: skyzer 來自: 140.123.103.41 (01/22 08:44)
14F:→ YoursEver:各frame拆成bmp是沒有問題的,跑多少讀多少即可. 01/22 11:11
15F:→ YoursEver:再來,你要算一下你需要的memory有多少. 01/22 11:11
16F:→ YoursEver:假設你的video是320*480的mpeg-1,那麼每frame就會有 01/22 11:14
17F:→ YoursEver:320*480*3 = 460K, 若30 frame/sec, 一秒就有約14MB. 01/22 11:16
18F:→ YoursEver:如果是HD,那麼在30frame/sec下,每秒需要的memory逾100MB 01/22 11:19
19F:→ YoursEver:這樣搞下去,記憶的的部分多半會無解; 轉存成BMP分批讀 01/22 11:19
20F:→ YoursEver:就是你說的"保持原樣",若有疑問可以找video processing 01/22 11:20
21F:→ YoursEver:的相關資料去確認. 01/22 11:20
22F:→ skyzer:可是這樣會有一堆bmp檔說...解析度大約是1000x1000 這樣弄 01/22 16:15
23F:→ skyzer:記憶體不夠本來就很正常 所以才想問有沒有好的處理方式呀 01/22 16:16
24F:→ skyzer:我對轉bmp檔沒有疑問呀@@" 但輸出希望是影片檔或是mat 01/22 16:19
25F:→ skyzer:才想知道有沒有什麼串接處理的方法 謝謝 01/22 16:20
26F:→ YoursEver:轉成bmp吧. 除了花硬碟花迴圈之外什麼都不花,工程上來說 01/22 16:21
27F:→ YoursEver:不容易找到比這個更方便廉價的解. 01/22 16:22
28F:推 YoursEver:看看avifile, addframe之類的東西對你有無幫助吧. :) 01/22 16:39
29F:→ skyzer:請問Y大 那轉成一堆bmp檔後能夠結合回影片檔嗎? 01/22 16:41
30F:→ skyzer:那兩個我會看看的 謝謝你 01/22 16:41
31F:→ YoursEver:你看完avifile的範例程式碼就知道了. :) 01/22 20:53
32F:→ skyzer:原來如此 謝謝你 01/22 22:24