フレームごとにビデオクリップをhdf5ファイルに保存しようとしています。 これまでのところ私のコードは動作していますが、ソースビデオファイルと比較して、hdf5ファイルのサイズは10倍以上になっています。Pythonはhdf5というファイルを大きなファイルサイズで保存します
入力ファイル:AVI 200×126px、持続時間:16分サイズ:82メガバイト
出力ファイル:HDF5、gzip圧縮、圧縮= 9、サイズ:1ギガバイト
フレームを格納するためのコードは非常に単純です:
import h5py
from skvideo.io import VideoCapture
frames = []
cap = VideoCapture('/home/ubuntu/PycharmProjects/video2H5Test/data/video_F100_scaled2.avi')
cap.open()
it = 0
while True:
retval, image = cap.read()
if image != None:
frames.append(image)
it += 1
if (it % 1000 == 0):
print('Processed %d frames so far' % (it))
if not retval:
break
with h5py.File('./test3.hdf5','w') as h5File:
h5File.create_dataset('camera1',data=frames,compression='gzip',compression_opts=9)
として、 gzipを使用してデータセットを圧縮していることがわかります。
メモリ消費を節約する方法はありますか?
圧縮を追加するのを忘れました。それがなければ、ファイルサイズはフレームごとに別々のデータセットを作成するのと同じですが、10倍以上長くなります – crazjo