Real-time video and audio streams over the network, with Streamlit.

Overview

streamlit-webrtc

Tests Frontend Tests

PyPI PyPI - Python Version PyPI - License PyPI - Downloads

GitHub Sponsors

Buy Me A Coffee

Example Open in Streamlit

You can try out the sample app using the following commands.

$ pip install streamlit-webrtc opencv-python
$ streamlit run https://raw.githubusercontent.com/whitphx/streamlit-webrtc-example/main/app.py

You can also try it out on Streamlit Sharing.

The deployment of this sample app is managed in this repository: https://github.com/whitphx/streamlit-webrtc-example/.

Tutorial

This post explains how to use streamlit-webrtc to build a real-time computer vision app.

Comments
  • Problem with RECVONLY reconnections

    Problem with RECVONLY reconnections

    Hi, when I stop and start video files/streams, using RECVONLY, it doesn't work. It starts the video correctly, but when I stop and start again, it shows only a gray screen.

    The log is:

    2021-05-17 12:27:14.093 ICE connection state is closed
    2021-05-17 12:27:15.780 Connection(42) Remote candidate "0163614b-42ff-4b75-925c-80a5e26dddb6.local" resolved to 192.168.1.13
    2021-05-17 12:27:15.986 Connection(42) Check CandidatePair(('192.168.1.13', 56258) -> ('192.168.1.13', 59948)) State.FROZEN -> State.WAITING
    2021-05-17 12:27:15.986 Connection(42) Check CandidatePair(('172.17.0.1', 60268) -> ('192.168.1.13', 59948)) State.FROZEN -> State.WAITING
    2021-05-17 12:27:15.987 ICE connection state is checking
    2021-05-17 12:27:15.987 Connection(42) Check CandidatePair(('192.168.1.13', 56258) -> ('192.168.1.13', 59948)) State.WAITING -> State.IN_PROGRESS
    2021-05-17 12:27:16.028 Connection(42) Check CandidatePair(('172.17.0.1', 60268) -> ('192.168.1.13', 59948)) State.WAITING -> State.IN_PROGRESS
    2021-05-17 12:27:16.031 Connection(42) Check CandidatePair(('192.168.1.13', 56258) -> ('192.168.1.13', 59948)) State.IN_PROGRESS -> State.SUCCEEDED
    2021-05-17 12:27:16.032 Connection(42) Check CandidatePair(('172.17.0.1', 60268) -> ('192.168.1.13', 59948)) State.IN_PROGRESS -> State.SUCCEEDED
    

    image

    How can I solve it?

    bug 
    opened by marcoslucianops 16
  • Audio recorder is slow when initialization

    Audio recorder is slow when initialization

    I run the example : WebRTC is sendonly and audio frames are visualized with matplotlib (sendonly) when I pressed the Start button , record device seems to initialize for a long time image after around 40 seconds, then show the graph image

    below is log message ~$ streamlit run https://raw.githubusercontent.com/whitphx/streamlit-webrtc-example/main/app.py

    You can now view your Streamlit app in your browser.

    Network URL: http://172.28.53.133:8501 External URL: http://114.32.244.17:8501

    [2021-07-01 15:39:10,548] WARNING from main in /tmp/tmpvsih9xwf/app.py:672: AudioReciver is not set. Abort. [2021-07-01 15:39:54,641] DEBUG from streamlit_webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/init.py:311: No worker exists though the offer SDP is set. Create a new worker (key="sendonly-audio"). [2021-07-01 15:39:54,657] DEBUG from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:381: _webrtc_thread_impl starts [2021-07-01 15:39:54,662] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:176: Track audio received [2021-07-01 15:39:54,662] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:180: Add a track <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fcc958864f0> to receiver <streamlit_webrtc.receive.MediaReceiver object at 0x7fcc95866c70> [2021-07-01 15:39:54,662] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:176: Track video received [2021-07-01 15:39:54,662] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:186: Add a track <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fcc95835f40> to receiver <streamlit_webrtc.receive.MediaReceiver object at 0x7fcc95866a90> [2021-07-01 15:39:54,675] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('172.28.48.1', 59954)) State.FROZEN -> State.WAITING [2021-07-01 15:39:54,675] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('10.0.0.3', 59955)) State.FROZEN -> State.WAITING [2021-07-01 15:39:54,718] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:91: ICE connection state is checking [2021-07-01 15:39:54,990] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('172.28.48.1', 59954)) State.WAITING -> State.IN_PROGRESS [2021-07-01 15:39:54,992] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('10.0.0.3', 59955)) State.WAITING -> State.IN_PROGRESS [2021-07-01 15:39:55,012] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('192.168.137.1', 59956)) State.FROZEN -> State.IN_PROGRESS [2021-07-01 15:39:55,033] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('114.32.244.17', 59955)) State.FROZEN -> State.IN_PROGRESS [2021-07-01 15:39:55,493] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) Check CandidatePair(('172.28.53.133', 52580) -> ('172.28.48.1', 59954)) State.IN_PROGRESS -> State.SUCCEEDED [2021-07-01 15:39:55,493] INFO from aioice.ice in /home/gary/work/mypy3/lib/python3.8/site-packages/aioice/ice.py:1061: Connection(0) ICE completed [2021-07-01 15:39:55,501] INFO from streamlit_webrtc.webrtc in /home/gary/work/mypy3/lib/python3.8/site-packages/streamlit_webrtc/webrtc.py:91: ICE connection state is completed

    opened by garymmi 10
  • ReferenceError: weakly-referenced object no longer exists

    ReferenceError: weakly-referenced object no longer exists

    2022-08-31 21:30:45.453 Uncaught app exception
    Traceback (most recent call last):
      File "/path/to/streamlit-webrtc-article-tutorial-sample/.venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 556, in _run_script
        exec(code, module.__dict__)
      File "/path/to/streamlit-webrtc-article-tutorial-sample/app.py", line 21, in <module>
        webrtc_streamer(
      File "/path/to/streamlit-webrtc-article-tutorial-sample/.venv/lib/python3.9/site-packages/streamlit_webrtc/component.py", line 514, in webrtc_streamer
        session_info = get_this_session_info()
      File "/path/to/streamlit-webrtc-article-tutorial-sample/.venv/lib/python3.9/site-packages/streamlit_webrtc/session_info.py", line 43, in get_this_session_info
        current_server = get_current_server()
      File "/path/to/streamlit-webrtc-article-tutorial-sample/.venv/lib/python3.9/site-packages/streamlit_webrtc/server.py", line 52, in get_current_server
        servers = [obj for obj in gc.get_objects() if isinstance(obj, Server)]
      File "/path/to/streamlit-webrtc-article-tutorial-sample/.venv/lib/python3.9/site-packages/streamlit_webrtc/server.py", line 52, in <listcomp>
        servers = [obj for obj in gc.get_objects() if isinstance(obj, Server)]
    ReferenceError: weakly-referenced object no longer exists
    

    requirements.txt

    opencv-python-headless==4.5.4.60
    streamlit==1.11.1
    streamlit-webrtc==0.43.2
    
    import streamlit as st
    from streamlit_webrtc import webrtc_streamer
    import av
    import cv2
    
    st.title("My first Streamlit app")
    st.write("Hello, world")
    
    threshold1 = st.slider("Threshold1", min_value=0, max_value=1000, step=1, value=100)
    threshold2 = st.slider("Threshold2", min_value=0, max_value=1000, step=1, value=200)
    
    
    def callback(frame):
        img = frame.to_ndarray(format="bgr24")
    
        img = cv2.cvtColor(cv2.Canny(img, threshold1, threshold2), cv2.COLOR_GRAY2BGR)
    
        return av.VideoFrame.from_ndarray(img, format="bgr24")
    
    
    webrtc_streamer(
        key="example",
        video_frame_callback=callback,
        rtc_configuration={  # Add this line
            "iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]
        }
    )
    

    Python 3.9.13

    opened by whitphx 8
  • 'SessionInfo' object has no attribute 'report_run_count'

    'SessionInfo' object has no attribute 'report_run_count'

    Hello, I'm just doing a simple project on face detection and found your approach on live streaming the video from the users device (Amazing solution btw!) I followed your suggestion by using streamlit share server to avoid the complexities faced in going though colab->ngrok->TURN server. For now, my app just consists of opening the camera under the following script recommended in the documentation (of course followed by the installation of streamlit-webstr):

    from streamlit_webrtc import webrtc_streamer webrtc_streamer(key="sample")

    But it's giving the following error: """AttributeError: 'SessionInfo' object has no attribute 'report_run_count'"""

    opened by AntonioTannoury 7
  • Problem with SessionState

    Problem with SessionState

    When I use SessionState in my streamlit, I getting this error

    image

    It can be solved by updating streamlit-webrtc SessionState.py file to

    from streamlit.report_thread import get_report_ctx
    import streamlit as st
    
    
    class SessionState(object):
        def __init__(self, **kwargs):
            """A new SessionState object.
    
            Parameters
            ----------
            **kwargs : any
                Default values for the session state.
    
            Example
            -------
            >>> session_state = SessionState(user_name='', favorite_color='black')
            >>> session_state.user_name = 'Mary'
            ''
            >>> session_state.favorite_color
            'black'
    
            """
            for key, val in kwargs.items():
                setattr(self, key, val)
    
    
    @st.cache(allow_output_mutation=True)
    def get_session(id, **kwargs):
        return SessionState(**kwargs)
    
    
    def get(**kwargs):
        """Gets a SessionState object for the current session.
    
        Creates a new object if necessary.
    
        Parameters
        ----------
        **kwargs : any
            Default values you want to add to the session state, if we're creating a
            new one.
    
        Example
        -------
        >>> session_state = get(user_name='', favorite_color='black')
        >>> session_state.user_name
        ''
        >>> session_state.user_name = 'Mary'
        >>> session_state.favorite_color
        'black'
    
        Since you set user_name above, next time your script runs this will be the
        result:
        >>> session_state = get(user_name='', favorite_color='black')
        >>> session_state.user_name
        'Mary'
    
        """
        ctx = get_report_ctx()
        id = ctx.session_id
        return get_session(id, **kwargs)
    

    Credits: https://gist.github.com/tvst/036da038ab3e999a64497f42de966a92#gistcomment-3484515

    opened by marcoslucianops 7
  • AttributeError: 'str' object has no attribute 'get'

    AttributeError: 'str' object has no attribute 'get'

    When launching the DeepSpeech demo I get this error.

    image

    Here is the full error:

    File "/Users/alleon_g/.pyenv/versions/3.8.6/envs/lewagon/lib/python3.8/site-packages/streamlit/script_runner.py", line 349, in _run_script
        exec(code, module.__dict__)
    File "/Users/alleon_g/code/galleon/refactored-octo-tribble/app.py", line 303, in <module>
        main()
    File "/Users/alleon_g/code/galleon/refactored-octo-tribble/app.py", line 111, in main
        app_sst_with_video(
    File "/Users/alleon_g/code/galleon/refactored-octo-tribble/app.py", line 212, in app_sst_with_video
        webrtc_ctx = webrtc_streamer(
    File "/Users/alleon_g/.pyenv/versions/3.8.6/envs/lewagon/lib/python3.8/site-packages/streamlit_webrtc/__init__.py", line 289, in webrtc_streamer
        playing = component_value.get("playing", False)
    
    bug 
    opened by galleon 5
  • Sendrecv streamer serves only one request at a time on a remote server

    Sendrecv streamer serves only one request at a time on a remote server

    I have a streamer in sendrecv mode deployed on Google's App Engine. The issue I'm facing is that when a visitor starts the stream it kinda clogs the instance, and the consequence is that only one visitor at a time can use the streamer. What is the reason, and is there a work-around? Thank you.

    Implementation

    WEBRTC_CLIENT_SETTINGS = ClientSettings(
        rtc_configuration={"iceServers": [{"urls": ["stun:stun.l.google.com:19302"]}]},
        media_stream_constraints={"video": True, "audio": False},
    )
    
    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,
        )
    
    opened by martinezpl 5
  • hosted app fails with 'builtins.Certificate' object has no attribute '_x509'

    hosted app fails with 'builtins.Certificate' object has no attribute '_x509'

    Hi @whitphx I got an app using your streamlit component running, thank you for your work! It runs smoothly locally but hosted on streamlit deploy it fails with

    'builtins.Certificate' object has no attribute '_x509'
    

    It looks like something related to pyopenssl. Did you see this issue yourself aswell at some point?

    opened by gustavz 4
  • Experimenting streamlit-webrtc using Google Colab and Ngrok

    Experimenting streamlit-webrtc using Google Colab and Ngrok

    Hi, anyone have been experimenting streamlit-webrtc component with Google Colabs and Ngrok, i need this setup because google colab have free gpu to serve my model.

    I have an ICE connection state is failed after running app.py example,

    https://gist.github.com/trisgelar/86968b75a3ff84f1425c1ccee6ad0415

    Thanks.

    You can now view your Streamlit app in your browser.

    Network URL: http://172.28.0.2:8501 External URL: http://34.125.122.87:8501

    2021-07-19 15:16:47.944 Restore the component value (key=object-detection) 2021-07-19 15:17:45.056 No worker exists though the offer SDP is set. Create a new worker (key="object-detection"). 2021-07-19 15:17:45.073 _webrtc_thread_impl starts 2021-07-19 15:17:46.110 Connection(0) Remote candidate "47ce6f98-7967-4bee-af8b-3fba9e547390.local" could not be resolved 2021-07-19 15:17:46.110 Track audio received 2021-07-19 15:17:46.110 Add a track <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fd7b9e60b10> of kind audio to <aiortc.rtcpeerconnection.RTCPeerConnection object at 0x7fd7d5325cd0> 2021-07-19 15:17:46.111 Track video received 2021-07-19 15:17:46.111 Set <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fd7b8d32fd0> as an input video track with video_processor <class 'streamlit_webrtc.process.AsyncVideoProcessTrack'> 2021-07-19 15:17:46.111 Add a track <streamlit_webrtc.process.AsyncVideoProcessTrack object at 0x7fd7b8d37b90> of kind video to <aiortc.rtcpeerconnection.RTCPeerConnection object at 0x7fd7d5325cd0> 2021-07-19 15:17:46.149 Connection(0) Check CandidatePair(('172.28.0.2', 49728) -> ('120.89.90.198', 33875)) State.FROZEN -> State.WAITING 2021-07-19 15:17:46.197 ICE connection state is checking 2021-07-19 15:17:46.344 Connection(0) Check CandidatePair(('172.28.0.2', 49728) -> ('120.89.90.198', 33875)) State.WAITING -> State.IN_PROGRESS 2021-07-19 15:18:13.134 Unset the worker because the frontend state is neither playing nor signalling (key="object-detection"). 2021-07-19 15:18:17.852 No worker exists though the offer SDP is set. Create a new worker (key="object-detection"). 2021-07-19 15:18:17.853 _webrtc_thread_impl starts 2021-07-19 15:18:17.888 Track audio received 2021-07-19 15:18:17.888 Add a track <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fd7d531a510> of kind audio to <aiortc.rtcpeerconnection.RTCPeerConnection object at 0x7fd7d8149a10> 2021-07-19 15:18:17.888 Track video received 2021-07-19 15:18:17.888 Set <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7fd7b8c0e410> as an input video track with video_processor <class 'streamlit_webrtc.process.AsyncVideoProcessTrack'> 2021-07-19 15:18:17.889 Add a track <streamlit_webrtc.process.AsyncVideoProcessTrack object at 0x7fd7b8c03090> of kind video to <aiortc.rtcpeerconnection.RTCPeerConnection object at 0x7fd7d8149a10> 2021-07-19 15:18:17.972 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('192.168.0.106', 39647)) State.FROZEN -> State.WAITING 2021-07-19 15:18:17.973 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('120.89.90.198', 39647)) State.FROZEN -> State.WAITING 2021-07-19 15:18:18.112 ICE connection state is checking 2021-07-19 15:18:18.112 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('192.168.0.106', 39647)) State.WAITING -> State.IN_PROGRESS 2021-07-19 15:18:18.189 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('120.89.90.198', 39647)) State.WAITING -> State.IN_PROGRESS 2021-07-19 15:18:49.853 Connection(0) Check CandidatePair(('172.28.0.2', 49728) -> ('120.89.90.198', 33875)) State.IN_PROGRESS -> State.FAILED 2021-07-19 15:18:49.853 Connection(0) ICE failed 2021-07-19 15:18:49.860 ICE connection state is failed 2021-07-19 15:18:49.860 ICE connection state is closed 2021-07-19 15:19:21.619 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('192.168.0.106', 39647)) State.IN_PROGRESS -> State.FAILED 2021-07-19 15:19:21.705 Connection(2) Check CandidatePair(('172.28.0.2', 53740) -> ('120.89.90.198', 39647)) State.IN_PROGRESS -> State.FAILED 2021-07-19 15:19:21.706 Connection(2) ICE failed 2021-07-19 15:19:21.720 ICE connection state is failed 2021-07-19 15:19:21.721 ICE connection state is closed

    opened by trisgelar 4
  • Adjusting Size of Webcam Video

    Adjusting Size of Webcam Video

    Hi @whitphx , first and foremost, thanks for this amazing component of Streamlit and your contributions. I would like to ask if there is a way to adjust the webcam video sizes after clicking "start"? As I switched into a large monitor and the video size seems to have quadrupled. I appreciate your feedback on this. Thanks

    Regards and thanks.

    enhancement 
    opened by jasonchanhku 4
  • ImportError: cannot import name 'SessionInfo' from 'streamlit.web.server.server'

    ImportError: cannot import name 'SessionInfo' from 'streamlit.web.server.server'

    I am using ngrok to connect to virtual server environment and run into this error

    This import error occurs since the last update. And I am able to solve it by downgrading streamlit to 1.11.0

    Complete log:

    File "/usr/local/lib/python3.7/dist-packages/streamlit/runtime/scriptrunner/script_runner.py", line 556, in _run_script exec(code, module.dict) File "/content/streamlit_app.py", line 2, in from streamlit_webrtc import webrtc_streamer File "/usr/local/lib/python3.7/dist-packages/streamlit_webrtc/init.py", line 10, in from .component import ( File "/usr/local/lib/python3.7/dist-packages/streamlit_webrtc/component.py", line 47, in from .session_info import get_script_run_count, get_this_session_info File "/usr/local/lib/python3.7/dist-packages/streamlit_webrtc/session_info.py", line 4, in from streamlit.web.server.server import SessionInfo

    opened by AmmarAhmedAlvi 3
  • Bump @types/jest from 28.1.8 to 29.2.5 in /streamlit_webrtc/frontend

    Bump @types/jest from 28.1.8 to 29.2.5 in /streamlit_webrtc/frontend

    Bumps @types/jest from 28.1.8 to 29.2.5.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • streamlit-webrtc does not work on chrome (tested on Android and macOS)

    streamlit-webrtc does not work on chrome (tested on Android and macOS)

    streamlit-webrtc seems to not work on chrome browser, I tested in on both Android and macOS with multiple apps. On both devices it works with Firefox though. Any idea why?

    opened by gustavz 0
  • Bump @storybook/node-logger from 6.5.12 to 6.5.15 in /streamlit_webrtc/frontend

    Bump @storybook/node-logger from 6.5.12 to 6.5.15 in /streamlit_webrtc/frontend

    Bumps @storybook/node-logger from 6.5.12 to 6.5.15.

    Release notes

    Sourced from @​storybook/node-logger's releases.

    v6.5.15

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    Maintenance

    • Ember: Remove global Ember usage #17843

    v6.5.15-alpha.1

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    v6.5.15-alpha.0

    Maintenance

    • Ember: Remove global Ember usage #17843

    v6.5.14

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043
    • CLI/React native: Fix addons template to import register instead of manager #19620

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    Dependency Upgrades

    • Upgrade loader-utils to 2.0.4 in storysource and source-loader #19891

    v6.5.14-alpha.2

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043

    v6.5.14-alpha.1

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    v6.5.14-alpha.0

    Bug Fixes

    • CLI/React native: Fix addons template to import register instead of manager #19620

    ... (truncated)

    Changelog

    Sourced from @​storybook/node-logger's changelog.

    6.5.15 (December 20, 2022)

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    Maintenance

    • Ember: Remove global Ember usage #17843

    6.5.15-alpha.1 (December 20, 2022)

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    6.5.15-alpha.0 (December 12, 2022)

    Maintenance

    • Ember: Remove global Ember usage #17843

    6.5.14 (December 2, 2022)

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043
    • CLI/React native: Fix addons template to import register instead of manager #19620

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    Dependency Upgrades

    • Upgrade loader-utils to 2.0.4 in storysource and source-loader #19891

    6.5.14-alpha.2 (December 2, 2022)

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043

    6.5.14-alpha.1 (November 27, 2022)

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    ... (truncated)

    Commits
    • feab19d v6.5.15
    • 075a8dd Update git head to 6.5.15-alpha.1, update yarn.lock [ci skip]
    • cfd775b v6.5.15-alpha.1
    • 9c19ef0 Update git head to 6.5.15-alpha.0, update yarn.lock [ci skip]
    • 095d6ad v6.5.15-alpha.0
    • ae06ca9 Update git head to 6.5.14, update yarn.lock [ci skip]
    • cf65eb7 v6.5.14
    • 6e1e6dd Update git head to 6.5.14-alpha.2, update yarn.lock [ci skip]
    • 71f07c4 v6.5.14-alpha.2
    • 885e7ac Update git head to 6.5.14-alpha.1, update yarn.lock [ci skip]
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump @storybook/addon-actions from 6.5.12 to 6.5.15 in /streamlit_webrtc/frontend

    Bump @storybook/addon-actions from 6.5.12 to 6.5.15 in /streamlit_webrtc/frontend

    Bumps @storybook/addon-actions from 6.5.12 to 6.5.15.

    Release notes

    Sourced from @​storybook/addon-actions's releases.

    v6.5.15

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    Maintenance

    • Ember: Remove global Ember usage #17843

    v6.5.15-alpha.1

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    v6.5.15-alpha.0

    Maintenance

    • Ember: Remove global Ember usage #17843

    v6.5.14

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043
    • CLI/React native: Fix addons template to import register instead of manager #19620

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    Dependency Upgrades

    • Upgrade loader-utils to 2.0.4 in storysource and source-loader #19891

    v6.5.14-alpha.2

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043

    v6.5.14-alpha.1

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    v6.5.14-alpha.0

    Bug Fixes

    • CLI/React native: Fix addons template to import register instead of manager #19620

    ... (truncated)

    Changelog

    Sourced from @​storybook/addon-actions's changelog.

    6.5.15 (December 20, 2022)

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    Maintenance

    • Ember: Remove global Ember usage #17843

    6.5.15-alpha.1 (December 20, 2022)

    Bug Fixes

    • Support Angular 15.0.4 #20287
    • CLI: execute automigrations when pressing enter in the prompts #20208

    6.5.15-alpha.0 (December 12, 2022)

    Maintenance

    • Ember: Remove global Ember usage #17843

    6.5.14 (December 2, 2022)

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043
    • CLI/React native: Fix addons template to import register instead of manager #19620

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    Dependency Upgrades

    • Upgrade loader-utils to 2.0.4 in storysource and source-loader #19891

    6.5.14-alpha.2 (December 2, 2022)

    Bug Fixes

    • Angular: Fix "webpack_require.nmd is not a function issue" in Angular 15 #20043

    6.5.14-alpha.1 (November 27, 2022)

    Maintenance

    • Core: Patch preview-web and refs to support React Native #19975

    ... (truncated)

    Commits
    • feab19d v6.5.15
    • 075a8dd Update git head to 6.5.15-alpha.1, update yarn.lock [ci skip]
    • cfd775b v6.5.15-alpha.1
    • 9c19ef0 Update git head to 6.5.15-alpha.0, update yarn.lock [ci skip]
    • 095d6ad v6.5.15-alpha.0
    • ae06ca9 Update git head to 6.5.14, update yarn.lock [ci skip]
    • cf65eb7 v6.5.14
    • 6e1e6dd Update git head to 6.5.14-alpha.2, update yarn.lock [ci skip]
    • 71f07c4 v6.5.14-alpha.2
    • 885e7ac Update git head to 6.5.14-alpha.1, update yarn.lock [ci skip]
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump minimatch and react-scripts in /streamlit_webrtc/frontend

    Bump minimatch and react-scripts in /streamlit_webrtc/frontend

    Bumps minimatch to 3.1.2 and updates ancestor dependency react-scripts. These dependencies need to be updated together.

    Updates minimatch from 3.0.4 to 3.1.2

    Commits

    Updates react-scripts from 4.0.3 to 5.0.1

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies javascript 
    opened by dependabot[bot] 0
  • How can i use docker for deploy?

    How can i use docker for deploy?

    when I start docker I cannot open the camera and then I open the camera, error show below

    `/usr/local/lib/python3.9/site-packages/aiortc/rtcdtlstransport.py:211: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now. _openssl_assert(lib.SSL_CTX_use_certificate(ctx, self._cert._x509) == 1) # type: ignore 2022-11-11 10:59:02.255 Track video received 2022-11-11 10:59:02.255 Set <aiortc.rtcrtpreceiver.RemoteStreamTrack object at 0x7f7cb2a4dd00> as an input video track with video_processor <class 'streamlit_webrtc.process.AsyncVideoProcessTrack'> 2022-11-11 10:59:02.255 Add a track <streamlit_webrtc.process.AsyncVideoProcessTrack object at 0x7f7cb2a51730> of kind video to <aiortc.rtcpeerconnection.RTCPeerConnection object at 0x7f7cb3af6cd0> /usr/local/lib/python3.9/site-packages/aiortc/rtcdtlstransport.py:186: CryptographyDeprecationWarning: This version of cryptography contains a temporary pyOpenSSL fallback path. Upgrade pyOpenSSL now. value=certificate_digest(self._cert._x509), # type: ignore 2022-11-11 10:59:02.292 Connection(0) Check CandidatePair(('172.24.0.3', 37908) -> ('192.168.0.117', 65137)) State.FROZEN -> State.WAITING 2022-11-11 10:59:02.293 ICE connection state is checking 2022-11-11 10:59:02.293 Connection(0) Check CandidatePair(('172.24.0.3', 37908) -> ('192.168.0.117', 65137)) State.WAITING -> State.IN_PROGRESS 2022-11-11 10:59:17.594 ICE connection state is closed 2022-11-11 10:59:17.899 Exception in callback Transaction.__retry() handle: <TimerHandle when=16114.24134038 Transaction.__retry()> Traceback (most recent call last): File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 1054, in sendto self._sock.sendto(data, addr) AttributeError: 'NoneType' object has no attribute 'sendto'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last): File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run self._context.run(self._callback, *self._args) File "/usr/local/lib/python3.9/site-packages/aioice/stun.py", line 309, in __retry self.__protocol.send_stun(self.__request, self.__addr) File "/usr/local/lib/python3.9/site-packages/aioice/ice.py", line 243, in send_stun self.transport.sendto(bytes(message), addr) File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 1064, in sendto self._fatal_error( File "/usr/local/lib/python3.9/asyncio/selector_events.py", line 711, in _fatal_error self._loop.call_exception_handler({ AttributeError: 'NoneType' object has no attribute 'call_exception_handler'`

    opened by nrtpkim 3
Releases(v0.44.2)
Owner
Yuichiro Tachibana (Tsuchiya)
Yuichiro Tachibana (Tsuchiya)
Streams video from raspberry pi to desktop T1 - Recognizes Faces on client T2

VideoStreamingServer Completed: Streams video from raspberry pi to desktop T1 - Recognizes Faces on client T2 In progress: Change the transmission Pro

null 1 Dec 6, 2021
MoviePy is a Python library for video editing, can read and write all the most common audio and video formats

MoviePy is a Python library for video editing: cutting, concatenations, title insertions, video compositing (a.k.a. non-linear editing), video processing, and creation of custom effects. See the gallery for some examples of use.

null 10k Jan 8, 2023
OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality video editing and animation solutions to the world.

OpenShot Video Editor is an award-winning free and open-source video editor for Linux, Mac, and Windows, and is dedicated to delivering high quality v

OpenShot Studios, LLC 3.1k Jan 1, 2023
Uncompress DEFLATE streams in pure Python

stream-deflate Uncompress DEFLATE streams in pure Python. Work in progress. This README serves as a rough design spec. Installation pip install stream

Michal Charemza 7 Oct 13, 2022
video streaming userbot (vsu) based on pytgcalls for streaming video trought the telegram video chat group.

VIDEO STREAM USERBOT ✨ an another telegram userbot for streaming video trought the telegram video chat. Environmental Variables ?? API_ID : Get this v

levina 6 Oct 17, 2021
Python script for extracting audio from video files and creating Mel spectrograms

video2spectrogram About This package is meant to automate the process of extracting audio files from videos and saving the plots computed from these a

Alexandros Stergiou 1 Oct 28, 2021
Convert Video Files To Text And Audio

Video-To-Text Convert Video Files To Text And Audio Convert To Audio 1: open dvtt folder in cmd 2: run this command in cmd => main.py Audio Convert To

Delta Inc. 2 Dec 5, 2021
A tool to fuck a video/audio quality using FFmpeg

Media quality fucker A tool to fuck a video/audio quality using FFmpeg How to use Download the source Download Python Extract FFmpeg Put what you want

Maizena 8 Jan 25, 2022
Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology

WebRTC Camera Home Assistant custom component for viewing IP cameras RTSP stream in real time using WebRTC technology. Based on: Pion - pure Go implem

Alex X 739 Dec 30, 2022
Synchronize Two Cameras in Real Time using Multiprocessing

Synchronize Two Cameras in Real Time using Multiprocessing In progress ... ?? Project Structure ?? Install Libraries for this Project (requirements.tx

Eduardo Carvalho Nunes 2 Oct 31, 2021
Text2Video's purpose is to help people create videos quickly and easily by simply typing out the video’s script and a description of images to include in the video.

Text2Video Text2Video's purpose is to help people create videos quickly and easily by simply typing out the video’s script and a description of images

Josh Chen 19 Nov 22, 2022
Takes a video as an input and creates a video which is suitable to upload on Youtube Shorts and Tik Tok (1080x1920 resolution).

Shorts-Tik-Tok-Creator Takes a video as an input and creates a video which is suitable to upload on Youtube Shorts and Tik Tok (1080x1920 resolution).

Arber Hakaj 5 Nov 9, 2022
Extracting frames from video and create video using frames

Extracting frames from video and create video using frames This program uses opencv library to extract the frames from video and create video from ext

null 1 Nov 19, 2021
pyffstream - A CLI frontend for streaming over SRT and RTMP specializing in sending off files

pyffstream - A CLI frontend for streaming over SRT and RTMP specializing in sending off files

Gregory Beauregard 3 Mar 4, 2022
A youtube video link or id to video thumbnail python package.

Youtube-Video-Thumbnail A youtube video link or id to video thumbnail python package. Made with Python3

Fayas Noushad 10 Oct 21, 2022
Filtering user-generated video content(SberZvukTechDays)Filtering user-generated video content(SberZvukTechDays)

Filtering user-generated video content(SberZvukTechDays) Table of contents General info Team members Technologies Setup Result General info This is a

Roman 6 Apr 6, 2022
Telegram Video Chat Video Streaming bot 🇱🇰

?? Get SESSION_NAME from below: Pyrogram ?? Preview ✨ Features Music & Video stream support MultiChat support Playlist & Queue support Skip, Pause, Re

DOOZY YEZ 5 Jun 26, 2022
Play Video & Music on Telegram Group Video Chat

?? DEMONGIRL ?? ʜᴇʟʟᴏ ❤️ ???? Join us ᴠɪᴅᴇᴏ sᴛʀᴇᴀᴍ ɪs ᴀɴ ᴀᴅᴠᴀɴᴄᴇᴅ ᴛᴇʟᴇʀᴀᴍ ʙᴏᴛ ᴛʜᴀᴛ's ᴀʟʟᴏᴡ ʏᴏᴜ ᴛᴏ ᴘʟᴀʏ ᴠɪᴅᴇᴏ & ᴍᴜsɪᴄ ᴏɴ ᴛᴇʟᴇɢʀᴀᴍ ɢʀᴏᴜᴘ ᴠɪᴅᴇᴏ ᴄʜᴀᴛ ?? ɢ

Jonathan 5 Dec 31, 2021
Turn any live video stream or locally stored video into a dataset of interesting samples for ML training, or any other type of analysis.

Sieve Video Data Collection Example Find samples that are interesting within hours of raw video, for free and completely automatically using Sieve API

Sieve 72 Aug 1, 2022