python ffpmeg rtmp拉流
时间: 2025-01-17 11:24:55 浏览: 49
### 如何使用 Python 和 FFmpeg 实现 RTMP 拉流
为了利用 Python 结合 FFmpeg 来实现 RTMP 流的拉取,可以采用 `cv2.VideoCapture` 方法来读取网络视频流。下面展示了具体操作方式:
#### 准备工作
确保安装了必要的库和工具:
- 安装 OpenCV-Python 库用于处理图像帧。
- 配置好支持 RTMP 的 FFmpeg 工具。
可以通过 pip 安装 opencv-python:
```bash
pip install opencv-python
```
#### 编写代码获取 RTMP 流并保存至本地文件
创建一个简单的脚本如下所示:
```python
import cv2
def capture_rtmp_stream(stream_url, output_file='output.avi'):
# 初始化 VideoCapture 对象连接到指定 URL 获取实时数据
cap = cv2.VideoCapture(stream_url)
# 判断是否成功打开链接
if not cap.isOpened():
print("Error: Could not open video stream.")
exit()
# 设置编码器参数准备存储捕获的数据
fourcc = cv2.VideoWriter_fourcc(*'XVID')
# 获取原始视频属性设置输出文件相同规格
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
writer = cv2.VideoWriter(output_file, fourcc, fps, (width, height))
try:
while True:
ret, frame = cap.read()
if not ret:
break
# 将每一帧写入文件中
writer.write(frame)
# 显示当前帧(可选)
cv2.imshow('Frame', frame)
key = cv2.waitKey(1) & 0xFF
# 如果按下 'q' 键则退出循环
if key == ord('q'):
break
finally:
# 清理资源释放对象
cap.release()
writer.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
rtmp_url = "rtmp://example.com/live/stream_key"
capture_rtmp_stream(rtmp_url)
```
这段程序定义了一个函数 `capture_rtmp_stream()` 接受两个参数:一个是 RTMP 地址字符串;另一个是要保存的目标 AVI 文件名,默认为 `'output.avi'`[^2]。
阅读全文
相关推荐


















