python FFmpeg调用摄像头
时间: 2023-05-12 10:04:05 浏览: 435
可以使用OpenCV库来调用摄像头并使用FFmpeg进行视频编码。以下是一个简单的Python代码示例:
```python
import cv2
import subprocess
# 打开摄像头
cap = cv2.VideoCapture(0)
# 设置视频编码参数
codec = 'mpeg4'
fps = 25
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
command = ['ffmpeg',
'-y', # 覆盖输出文件
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-s', f'{width}x{height}',
'-pix_fmt', 'bgr24',
'-r', f'{fps}',
'-i', '-',
'-an',
'-vcodec', f'{codec}',
'output.mp4']
# 打开FFmpeg进程
p = subprocess.Popen(command, stdin=subprocess.PIPE)
# 读取摄像头并编码
while True:
ret, frame = cap.read()
if not ret:
break
p.stdin.write(frame.tobytes())
# 关闭摄像头和FFmpeg进程
cap.release()
p.stdin.close()
p.wait()
```
这段代码使用OpenCV库打开摄像头并读取每一帧图像,然后使用FFmpeg进行视频编码并输出到文件中。
阅读全文