只需要一个opencv就够了,opencv是真的强。
注意事项:
- source_path和sink_path需要修改;
- 该版本支持mov后缀到avi后缀的转换,根据实际情况需要修改源码;
# 目标
# 1. 拷贝视频文件并修改后缀
# 2. 修改图片的分辨率
# 3. 批量完成
import os
import cv2
from pathlib import Path
source_path = r".\mov_video"
sink_path = r".\data\videos"
if not os.path.exists(source_path) or not os.path.exists(sink_path):
print('Path not exit!')
exit()
videos_list = os.listdir(source_path)
for video in videos_list:
video_path = os.path.join(source_path, video)
if Path(video_path).suffix in ['.MOV', '.mov']:
# 修改后缀名
dis_video_name = video
dis_video_name = dis_video_name.replace(str(dis_video_name).split('.')[-1], 'avi')
dis_path = os.path.join(sink_path, dis_video_name)
# 进行转换
cap = cv2.VideoCapture(video_path)
success, _ = cap.read()
# 重新合成的视频在原文件夹,如果需要分开,可以修改file_n
video_writer = cv2.VideoWriter(dis_path, cv2.VideoWriter_fourcc(*'XVID'), 25, (1280, 720))
while success:
success, vid1 = cap.read()
try:
vid = cv2.resize(vid1, (1280, 720), interpolation=cv2.INTER_LINEAR) # 希望的分辨率大小可以在这里改
video_writer.write(vid)
except:
break
其他可以不看,但是得看参考链接:
OpenCV 用 VideoWriter 创建视频(Python 版本):这篇文章真的写好好,一个类以及参数讲得非常清楚
python+opencv 批量修改视频分辨率:这篇就讲了实际的应用
通过python对视频进行复制:像读文件一样对视频文件复制