Python OpenCV 实时推流应用程序窗口到 RTMP 地址
要实现这个任务,你需要安装 OpenCV 和 FFmpeg 库。然后你可以使用以下代码:
import cv2
import numpy as np
import subprocess
# 设置参数
rtmp_url = 'rtmp://your_rtmp_server_url/your_stream_key'
window_name = 'Your Application Window Name'
# 打开窗口
cv2.namedWindow(window_name, cv2.WINDOW_NORMAL)
# 循环截图并推流
while True:
# 获取窗口截图
window = cv2.getWindowImageRect(window_name)
x, y, w, h = window[0], window[1], window[2], window[3]
img = np.array(subprocess.check_output(['screencapture', '-R{0},{1},{2},{3}'.format(x, y, w, h), '-x', '-t', 'jpg', '-']), dtype=np.uint8)
img = cv2.imdecode(img, cv2.IMREAD_COLOR)
# 显示截图
cv2.imshow(window_name, img)
# 推流
output = cv2.VideoWriter(rtmp_url, cv2.CAP_FFMPEG, cv2.VideoWriter_fourcc(*'H264'), 30, (w, h), True)
output.write(img)
# 检测退出按键
k = cv2.waitKey(1)
if k == ord('q') or k == 27:
break
# 清理
cv2.destroyAllWindows()
原文地址: https://www.cveoy.top/t/topic/nOXV 著作权归作者所有。请勿转载和采集!