Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌';s应用程序引擎:Streamlight WebRTC';具有sendrecv模式的s播放器一次只提供一个请求_Python_Google App Engine_Google Cloud Platform_Webrtc_Streamlit - Fatal编程技术网

Python 谷歌';s应用程序引擎:Streamlight WebRTC';具有sendrecv模式的s播放器一次只提供一个请求

Python 谷歌';s应用程序引擎:Streamlight WebRTC';具有sendrecv模式的s播放器一次只提供一个请求,python,google-app-engine,google-cloud-platform,webrtc,streamlit,Python,Google App Engine,Google Cloud Platform,Webrtc,Streamlit,我有一个用Streamlit构建的网站,托管在谷歌的应用程序引擎上。使用streamlit_webRTC,我实现了一个拖缆,可以从访客的相机读取图像,将其输入到我的算法(人脸检测、遮罩开/关分类),并将处理后的图像返回给播放器 WEBRTC_CLIENT_SETTINGS = ClientSettings( rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.co

我有一个用Streamlit构建的网站,托管在谷歌的应用程序引擎上。使用streamlit_webRTC,我实现了一个拖缆,可以从访客的相机读取图像,将其输入到我的算法(人脸检测、遮罩开/关分类),并将处理后的图像返回给播放器

WEBRTC_CLIENT_SETTINGS = ClientSettings(
    rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]},
    media_stream_constraints={"video": True, "audio": False},
)
问题是一次只能有一名访客使用拖缆。 在我看来,活动实例正在被阻塞,直到访问者关闭拖缆。我看到两种可能的解决方案:

a) 修改应用程序引擎设置,为每个访问者创建单独的实例

b) 在代码中修改某种拖缆的设置


即使这些解决方案是有效的,我也完全不知道该去哪里寻找方法,这就是我写这篇文章的原因。非常感谢您的指点。

根据OP的意见,我们找到了解决方案:

0.9.0版本的
streamlit_webrtc
修复了该问题


如果您有类似的问题,请考虑升级到0.9.0或更高版本。

def app_mask_detection():

    class OpenCVVideoTransformer(VideoTransformerBase):
        def __init__(self) -> None:
            self.assembly = ModelAssembly()    

        def transform(self, frame: av.VideoFrame) -> av.VideoFrame:
            img = frame.to_ndarray(format="bgr24")
           
            return self.assembly.forwardFrame(img)

    webrtc_ctx = webrtc_streamer(
        key="opencv-filter",
        mode=WebRtcMode.SENDRECV,
        client_settings=WEBRTC_CLIENT_SETTINGS,
        video_transformer_factory=OpenCVVideoTransformer,
        async_transform=True,
    )