代碼
modify_video_frame_rate.py
import os
import cv2
# 修改視頻幀率爲指定幀率,分辨率保持不變
def modify_video_frame_rate(videoPath,destFps):
dir_name = os.path.dirname(videoPath)
basename = os.path.basename(videoPath)
video_name = basename[:basename.rfind('.')]
video_name = video_name + "moify_fps_rate"
resultVideoPath = f'{dir_name}/{video_name}.mp4'
videoCapture = cv2.VideoCapture(videoPath)
fps = videoCapture.get(cv2.CAP_PROP_FPS)
if fps != destFps:
frameSize = (int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
#這裏的VideoWriter_fourcc需要多測試,如果編碼器不對則會提示報錯,根據報錯信息修改編碼器即可
videoWriter = cv2.VideoWriter(resultVideoPath,cv2.VideoWriter_fourcc('m','p','4','v'),destFps,frameSize)
i = 0;
while True:
success,frame = videoCapture.read()
if success:
i+=1
print('轉換到第%d幀' % i)
videoWriter.write(frame)
else:
print('幀率轉換結束')
break
if __name__ == '__main__':
modify_video_frame_rate('test.mp4',50)
更多內容請訪問我的個站:www.stubbornhuang.com