opencv-python:讀取視頻,不改變視頻分辨率修改視頻幀率

代碼

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

發佈了165 篇原創文章 · 獲贊 268 · 訪問量 66萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章