RTC提交
This commit is contained in:
33
rtc/rtc.py
33
rtc/rtc.py
@ -1,6 +1,6 @@
|
||||
import asyncio
|
||||
import aiohttp
|
||||
import cv2 # 导入OpenCV库
|
||||
import cv2
|
||||
import numpy as np
|
||||
from aiortc import RTCPeerConnection, RTCSessionDescription, RTCConfiguration
|
||||
from aiortc.mediastreams import MediaStreamTrack
|
||||
@ -97,7 +97,7 @@ async def frame_consumer(frame_queue):
|
||||
# 创建OCR检测器实例(请替换为实际的违禁词文件路径)
|
||||
ocr_detector = OCRViolationDetector(
|
||||
forbidden_words_path=r"D:\Git\bin\video\ocr\forbidden_words.txt", # 替换为实际路径
|
||||
ocr_confidence_threshold=0.5,)
|
||||
ocr_confidence_threshold=0.5, )
|
||||
|
||||
while True:
|
||||
# 从队列中获取cv2帧(队列为空时会阻塞等待新帧)
|
||||
@ -116,24 +116,31 @@ async def frame_consumer(frame_queue):
|
||||
# print("帧处理完成、队列已清空")
|
||||
|
||||
|
||||
async def main():
|
||||
# WebRTC服务器地址
|
||||
url = "http://192.168.110.25:1985/rtc/v1/whep/?app=live&stream=677a4845aa48cb8526c811ad56fc5e60"
|
||||
def process_webrtc_stream(ip, webrtc_url):
|
||||
"""
|
||||
处理WEBRTC流并持续打印OCR检测结果
|
||||
|
||||
Args:
|
||||
ip: IP地址(预留参数)
|
||||
webrtc_url: WEBRTC服务器地址
|
||||
"""
|
||||
# 创建队列
|
||||
frame_queue = asyncio.Queue(maxsize=1)
|
||||
|
||||
# 创建任务
|
||||
receiver_task = asyncio.create_task(rtc_frame_receiver(url, frame_queue))
|
||||
consumer_task = asyncio.create_task(frame_consumer(frame_queue))
|
||||
# 定义事件循环中的主任务
|
||||
async def main_task():
|
||||
# 创建任务
|
||||
receiver_task = asyncio.create_task(rtc_frame_receiver(webrtc_url, frame_queue))
|
||||
consumer_task = asyncio.create_task(frame_consumer(frame_queue))
|
||||
|
||||
# 等待任务完成
|
||||
await asyncio.gather(receiver_task, consumer_task)
|
||||
# 等待任务完成
|
||||
await asyncio.gather(receiver_task, consumer_task)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
asyncio.run(main())
|
||||
# 运行事件循环
|
||||
asyncio.run(main_task())
|
||||
except KeyboardInterrupt:
|
||||
print("用户中断处理流程")
|
||||
finally:
|
||||
# 确保关闭所有cv2窗口
|
||||
cv2.destroyAllWindows()
|
||||
|
Reference in New Issue
Block a user