Python&OpenCV - 读写(read&write)视频(video) 详解 及 代码

Python&OpenCV - 读写(read&write)视频(video) 详解 及 代码

本文地址: http://blog.csdn.net/caroline_wendy/article/details/17084397

 

OpenCV读取视频, 获得视频的格式, 读取视频的每一帧,播放控制; 使用VideoCapture类和read()函数;

获取视频属性(码率\尺寸)使用VideoCapture的get()方法;

"avi"是所有系统都会支持的视频格式;

OpenCV写视频, 需要指定视频的格式, 可以从原视频中获取; 使用VideoWriter类和write()函数

VideoWriter类写入视频时, 需要提供视频名, 格式, 码率(fps), 帧的尺寸等参数;

视频格式包括: 

I420(适合处理大文件) -> .avi;

PIMI-> .avi;

MJPG-> .avi & .mp4

THEO-> .ogv;

FLV1(flashvideo, 流媒体视频) -> .flv



注意: 使用OpenCV, cv2的方法, 和cv2.cv.XXX的参数;

代码如下:

[python] view plain copy

1.  # -*- coding: utf-8 -*-  

2.    

3.  #=================  

4.  #File: PyOpenCV.py  

5.  #Author: Wendy  

6.  #Date: 2013-12-03  

7.  #=================  

8.    

9.  #eclipse, python2.7, opencv 2.4.6  

10.   

11. import cv2  

12.   

13. #获得视频的格式  

14. videoCapture = cv2.VideoCapture('oto.avi')  

15.   

16. #获得码率及尺寸  

17. fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS)  

18. size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),   

19.         int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))  

20.   

21. #指定写视频的格式, I420-avi, MJPG-mp4  

22. videoWriter = cv2.VideoWriter('oto_other.mp4', cv2.cv.CV_FOURCC('M''J''P''G'), fps, size)  

23.   

24. #读帧  

25. success, frame = videoCapture.read()  

26.   

27. while success :  

28.     cv2.imshow("Oto Video", frame) #显示  

29.     cv2.waitKey(1000/int(fps)) #延迟  

30.     videoWriter.write(frame) #写视频帧  

31.     success, frame = videoCapture.read() #获取下一帧  

32.       



猜你喜欢

转载自blog.csdn.net/jgw2008/article/details/79316473
今日推荐