我使用python 2.7来读取视频并存储在hdf5中。这是我的代码
import h5py
import skvideo.datasets
import skvideo.io
videodata = skvideo.io.vread('./v_ApplyEyeMakeup_g01_c01.avi')
with h5py.File('./video.hdf5','w') as f:
f['data'] = videodata
f['label'] = 1
问题是输出hdf5太大了。它比原始的avi文件大128倍。我该怎么做才能压缩/缩小尺寸?您可以在https://drive.google.com/open?id=0B1MrjZsURl2yNFM0ZTJfZ3pOZVU
下载该文件我认为我们可以使用
压缩它f.create_dataset('data',data=videodata,compression='gzip',compression_opts=9)
f.create_dataset('label', data=1)
现在,它仍然比原始文件大37倍。提前致谢。
答案 0 :(得分:1)
通过添加分块,我能够将输出设为7.2M,相比之下,输出为10M。所以它肯定有所改进,但仍远离专用视频格式。您可以使用https://support.hdfgroup.org/services/filters.html中的其他过滤器,但我怀疑它们会将压缩程度提高一个数量级。因此,如果您想继续使用h5py,则可能需要接受更大的文件大小。如果这是不可接受的,只需尝试其他文件格式。
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
Integrated Security=no;
答案 1 :(得分:0)