So I am running a code that will keep reading the processed images from an AI program that is written into a temp.jpeg file. The program will continuously write to this .jpeg file and Streamlit will continuously read this file to sort of stream the results in a designated video space.
The code I am using is as followed:
import streamlit as st
import cv2
vid_area = st.empty()
@st.cache_resource
def read_image():
try:
with open('temp.jpeg', 'rb'):
return cv2.imopen("temp.jpeg")
except:
return None
while True:
frame = read_image()
if frame is not None:
vid_area.image(frame, channels='BGR')
I’m also open to using any other method to accomplish the same task.
Expected behavior:
The images are streamed to the preferred host
Actual behavior:
Without st.cache_resource, the images are streamed correctly, but the memory will eventually run out. With st.cache_resource, the first image is read but it will not change.
It appears that as the app is being used, over time the memory will run out owing to the ever growing cache. What you can do is look into clearing up the cache.
Thank you for your help, but this does not seem to help my problem. Given that I’m processing a video that outputs every frame, now I’m using streamlit to read all the frame and stream it. So the ‘ttl’ of each cache is only 0.003s to keep up with a 30fps video. Doing this caused:
KeyError: ‘d41d8cd98f00b204e9800998ecf8427e’
Using ‘max_entries’ doesn’t feel right either because there is no input and the file I need to read is only one temp file.
Hope that this gives more context. I’m still new to Streamlit, so I’m open to other suggestions.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.
Hello there 👋🏻
Thanks for stopping by! We use cookies to help us understand how you interact with our website.
By clicking “Accept all”, you consent to our use of cookies. For more information, please see our privacy policy.
Cookie settings
Strictly necessary cookies
These cookies are necessary for the website to function and cannot be switched off. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms.
Performance cookies
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us understand how visitors move around the site and which pages are most frequently visited.
Functional cookies
These cookies are used to record your choices and settings, maintain your preferences over time and recognize you when you return to our website. These cookies help us to personalize our content for you and remember your preferences.
Targeting cookies
These cookies may be deployed to our site by our advertising partners to build a profile of your interest and provide you with content that is relevant to you, including showing you relevant ads on other websites.