【视频转换】监控视频DAV转mp4

遇到.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
# 视频转换 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
原文地址:https://www.cnblogs.com/wangxiaobei2019/p/14820874.html