opencv处理视频流编码
时间: 2023-11-07 07:59:38 浏览: 146
OpenCV可以处理多种视频编码格式,包括H.264、MPEG-4、MJPG等。下面介绍几种常用的视频编码格式的处理方法:
1. H.264编码格式:
H.264是一种先进的视频编码格式,广泛应用于网络视频、移动视频和高清电视等领域。在OpenCV中,可以使用VideoWriter类来编码和保存H.264格式的视频文件。示例代码如下:
```python
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置视频编码器
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
# 写入视频帧
out.write(frame)
# 显示视频帧
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
```
2. MPEG-4编码格式:
MPEG-4是一种标准的视频编码格式,广泛应用于数字电视、互联网视频和手机视频等领域。在OpenCV中,可以使用VideoWriter类来编码和保存MPEG-4格式的视频文件。示例代码如下:
```python
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置视频编码器
fourcc = cv2.VideoWriter_fourcc(*'MP4V')
out = cv2.VideoWriter('output.mp4', fourcc, 20.0, (640, 480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
# 写入视频帧
out.write(frame)
# 显示视频帧
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
```
3. MJPG编码格式:
MJPG是一种简单的视频编码格式,常用于网络摄像头和实时视频传输等领域。在OpenCV中,可以使用VideoWriter类来编码和保存MJPG格式的视频文件。示例代码如下:
```python
import cv2
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置视频编码器
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))
while(cap.isOpened()):
ret, frame = cap.read()
if ret==True:
# 写入视频帧
out.write(frame)
# 显示视频帧
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
```
以上代码中,`cv2.VideoWriter_fourcc`函数用于指定视频编码格式,参数中的字符串为编码格式的四个字符代码,如'H264'、'MP4V'和'MJPG'等。`cv2.VideoWriter`类用于创建视频编码器,需要指定输出文件名、编码格式、帧率和视频分辨率等参数。在循环中,读取摄像头的每一帧图像,然后写入视频编码器中。最后释放资源并关闭窗口。