遇到.dav
格式的视频,无法用OpenCV
读取,如何转换成mp4
1. 首先将.dav
视频修改后缀成.h264
def video_rename(file_path,save_path):
for video_name in os.listdir(file_path):
new_name = video_name.split('.')[0] + '.h264'
os.rename(os.path.join(file_path,video_name),os.path.join(save_path,new_name))
print("视频格式转换完成,dav 转 h264 !!")
2. 利用OpenCV
转换成mp4
- 此时的
.h264
可以用播放器显示,但OpenCV还是不能获取帧率、总时长等信息,只能读取视频,所以将读取的视频帧保存到mp4
中
def video2mp4(video_name,save_name,save_fps = 25,video_w = 1280,video_h=1024):
if video_name.split('.')[-1] == 'mp4':
return -1
cap = cv2.VideoCapture(video_name)
tmp_video_mp4 = cv2.VideoWriter(save_name, cv2.VideoWriter_fourcc('M','P','E','G'), save_fps, (video_w,video_h))
start_time = time.time()
while True:
success, origin_img = cap.read()
if not success or len(origin_img) < 2:
break
tmp_video_mp4.write(cv2.resize(origin_img,(video_w,video_h)))
end_time = time.time()
tmp_video_mp4.release()
print("video {} change done! spand time = {}".format(save_name,end_time - start_time))
利用pyqt搭建视频转换平台
- 1.打开监控视频
.dav
文件夹,选择保存路径
- 2.选择线程数量(不宜过多,会卡),和保存视频的帧率
- 3.按下
启动按钮
,图像窗口会显示视频图像,下方显示处理视频的状态
- 4.可以随时暂定转换过程,视频会正常保存
下载链接如下
https://download.csdn.net/download/wangxiaobei2017/18142723