[英]Why my laptop gets stuck when working with Python list?
我有一個視頻文件,我現在想要的是將所有視頻的幀放入Python列表中。 我正在使用Python的OpenCV庫來完成它。 但我的筆記本電腦永遠不會這樣做。 它只是卡住了我必須切斷電源重新啟動它。 我的猜測是由於內存不足,python列表無法處理所有幀。 這是代碼,我相信它是做我想要的正確方法(語法)。 現在我需要為什么筆記本電腦卡住以及使用列表以外的任何解決方案。
import cv2
video = cv2.VideoCapture("myvideo.mp4")
all_frames = []
while 1:
ret, frame = video.read()
if ret:
all_frames.append(frame)
continue
break
以下是有關可能對您有所幫助的視頻的一些數據
該視頻包含7000幀。
每幀具有(1080,1920)維度
你不能這樣做。
在讀取時,幀從.mp4
到原始輸出未壓縮 ,如每像素3個字節等。
所以你想存儲總共7000 * 3 * 1080 * 1920字節,大約是43 Gb !!
更何況,由於名單的不斷調整大小append
創造更加副本,所以即使你有可用內存,這將是很長的。
該計划背后的想法可能是分析框架。 所以基本上你不需要同時在內存中的所有幀。
在這種情況下,讀取少數(在旋轉緩沖區中),執行形狀檢測分析,無論如何,存儲分析的數據(小得多)並丟棄原始數據,重復(執行實時分析的程序不能存儲所有數據,因為它們永遠在運行)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.