git: https://github.com/linyi0604/Computer-Vision
1 # coding:utf8
2 import cv2 3
4 """
5 讀取視頻文件的幀, 采用yuv顏色編碼寫入到另一個幀 6
7 VideoCapture和VideoWriter用於視頻文件的讀寫 8 VideoCapture讀的每一幀都是一個bgr格式的圖像 9 """
10 videoCapture = cv2.VideoCapture("../data/demo3.mp4") 11 fps = videoCapture.get(cv2.CAP_PROP_FPS) 12 size = ( 13 int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)), 14 int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)) 15 ) 16
17 videoWriter = cv2.VideoWriter( 18 "output.mp4", 19 cv2.VideoWriter_fourcc("I", "4", "2", "0"), # 編碼器
20 fps, 21 size 22 ) 23 '''
24 編碼器常用的幾種: 25 cv2.VideoWriter_fourcc("I", "4", "2", "0") 26 壓縮的yuv顏色編碼器,4:2:0色彩度子采樣 兼容性好,產生很大的視頻 avi 27 cv2.VideoWriter_fourcc("P", I", "M", "1") 28 采用mpeg-1編碼,文件為avi 29 cv2.VideoWriter_fourcc("X", "V", "T", "D") 30 采用mpeg-4編碼,得到視頻大小平均 拓展名avi 31 cv2.VideoWriter_fourcc("T", "H", "E", "O") 32 Ogg Vorbis, 拓展名為ogv 33 cv2.VideoWriter_fourcc("F", "L", "V", "1") 34 FLASH視頻,拓展名為.flv 35 '''
36
37 success, frame = videoCapture.read() 38 while success: # 循環直到沒有幀了
39 videoWriter.write(frame) 40 success, frame = videoCapture.read()
