python代码获取摄像头实时视频并编码成h264格式输出
时间: 2024-01-06 17:04:35 浏览: 320
可以使用OpenCV库来获取摄像头实时视频,并使用FFmpeg将视频编码成H.264格式输出。以下是一个简单的示例代码:
```
import cv2
import subprocess
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置视频编码器
fourcc = cv2.VideoWriter_fourcc(*'X264')
# 创建视频输出对象
output = cv2.VideoWriter('output.mp4', fourcc, 20.0, (640, 480))
while True:
# 读取当前帧
ret, frame = cap.read()
if ret:
# 将当前帧写入输出视频
output.write(frame)
# 显示当前帧
cv2.imshow('frame', frame)
# 等待按下 q 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# 释放资源
cap.release()
output.release()
cv2.destroyAllWindows()
# 使用 FFmpeg 编码成 H.264 格式
subprocess.run(['ffmpeg', '-i', 'output.mp4', '-c:v', 'libx264', '-preset', 'ultrafast', '-crf', '22', 'output.h264'])
```
在上面的代码中,我们使用`cv2.VideoCapture`函数从摄像头获取实时视频。我们创建了一个名为`output`的`cv2.VideoWriter`对象,用于将视频帧编码成H.264格式并输出到文件中。最后,我们使用`subprocess.run`函数调用FFmpeg将输出视频文件`output.mp4`编码成H.264格式的文件`output.h264`。注意,这需要安装FFmpeg并将其添加到环境变量路径中。
阅读全文