Created a project for playing video side by side using streamlit and opencv-python but on the loop it generates video frames continuously but I want in a 1x1 format
import cv2
import streamlit as st
st.set_page_config(
page_title="Sample Page"
)
st.title("4-Video Grid")
cap = cv2.VideoCapture("videos/video1.mp4")
col1, col2 = st.columns([1, 1])
while True:
ret, frame1 = cap.read()
ret, frame2 = cap.read()
if not ret:
break
col1.image(frame1, channels="BGR")
col2.image(frame2, channels="BGR")
key = cv2.waitKey(1)
if key == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
The above provided code is just a sample but it generates frames continuously
I want to play 2 videos side by side using streamlit and opencv-python for a Computer Vision Project
Finally, I found a temporary solution to this so i am going to close this topic if anyone know a better solution feel free to reach me
import streamlit as st
import cv2
st.set_page_config(
page_title="Workout file"
)
st.title("Multiple Cameras")
cam1, cam2 = st.columns((1, 1))
video_1 = cam1.empty()
video_2 = cam2.empty()
cap1 = cv2.VideoCapture("videos/cars.mp4")
cap2 = cv2.VideoCapture("videos/motorbikes-1.mp4")
while cap1.isOpened() or cap2.isOpened():
ret1, frame1 = cap1.read()
ret2, frame2 = cap2.read()
frame1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2RGB)
frame2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2RGB)
video_1.image(frame1, channels="RGB")
video_2.image(frame2, channels="RGB")
cap1.release()
cap2.release()
cv2.destroyAllWindows()
the above solution temporarily solved my issue!!