图片转视频
import os
import cv2
import glob
dir_path = ‘crowd’
def img2video(img_dir,save_name):
fps = 20
fourcc = cv2.VideoWriter_fourcc(‘XVID’) # 视频格式
video_writer = cv2.VideoWriter(save_name, fourcc, fps, (1920, 1080))
imgs = glob.glob(os.path.join(img_dir,’.jpg’))
# print('imgs = ',imgs)
for name in imgs:
# img_name = os.path.join(img_dir,name)
# print('img_name=',name)
frame = cv2.imread(name)
frame = cv2.resize(frame, (1920, 1080)) #细节需要注意
# print('frame = ',frame)
video_writer.write(frame)
# release memory
video_writer.release()
img2video(dir_path,‘crowd.mp4’)
视频文件格式,即视频文件的后缀,如mp4,avi等等,主要为帮助系统的程序知道应该使用何种程序打开该文件;这就是说如果你把一个视频格式的文件后缀从avi改成mp4,并不意味该文件就变成了mp4格式。
视频封装格式则是一种视频封装容器。什么意思呢?在视频文件中同时含有视频部分、音频部分等等;那么视频封装容器则一种可以把多种视频数据放在一起的一个大盒子。这个盒子就是我们常说的视频格式,例如AVI(后缀.avi)格式、MPEG(后缀.mpg .mpeg .mpe .dat .vob .asf .3gp .mp4)格式、REAL Video(后缀.rmvb)格式、Flash Video(后缀.flv)格式等等。
那么视频编码器又是什么呢?视频编码器是指能够对数字视频进行压缩存储和解压缩的程序或设备。目前场景的编码器有H.26X系列(目前最流行的是H.264和H.265)和MPEG系列(目前最流行的是MPEG-4第十部分,即H.264)。上文代码中提到的XVID(旧称为DIVX)是一个开放源代码的MPEG-4视频编解码器.
经过上述介绍想必你已经对视频有了一个基本的了解和认识,那么接下来我就说出上述程序失败的原因:
系统中不存在对应的编码器!
解决方案
后来发现很简单,严格按照Opencv官方的编译指南,把所有的依赖库都安装上,而且安装一个解码器