提问人:Norbert Yuhas 提问时间:11/10/2023 更新时间:11/10/2023 访问量:23
如何从 streamlit 在 django 中显示多个视频流?
How to display multiple video streams in django from streamlit?
问:
我有一个代码,应该在 django 页面上显示视频。 我正在尝试将其从 streamlit 转换为 django,但没有成功。 请告诉我如何实现?多个线程到达,所有这些线程都需要显示在 Django 的一个页面上,就像视频墙一样。
streamlit 中的代码:
video_placeholders = [st.empty() for _ in range(3)]
for i, result in enumerate(results):
image = result.orig_img
detection_results = model(image)[0]
detections = sv.Detections.from_ultralytics(detection_results)
detections = tracker.update_with_detections(detections)
annotated_frame = process_frame(image)
resized_image = cv2.resize(annotated_frame, (1024, 768))
video_placeholders[i % 3].image(resized_image, channels="BGR", use_column_width=True, caption=f"Video {i + 1}")
我正在尝试的 Django 代码在一个地方显示来自所有摄像头的图像,但每个线程都应该有自己的显示:
def video_stream(request):
def generate_frames():
for i, result in enumerate(results):
image = result.orig_img
detection_results = model(image)[0]
detections = sv.Detections.from_ultralytics(detection_results)
detections = tracker.update_with_detections(detections)
annotated_frame = process_frame(image, stream_index=i) # Pass stream_index to process_frame
resized_image = cv2.resize(annotated_frame, (1024, 768))
_, frame = cv2.imencode('.jpg', resized_image)
frame = frame.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
return StreamingHttpResponse(generate_frames(), content_type='multipart/x-mixed-replace; boundary=frame')
我最近才开始学习 Django,还没有完全理解处理逻辑。
我的html模板:
{% for stream_name in stream_names %}
<h2>{{ stream_name }}</h2>
<img src="{% url 'video_stream' %}?stream_index={{ forloop.counter0 }}" style="width: 100%;">
<hr>
{% endfor %}
答: 暂无答案
评论