mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-26 19:06:11 +01:00
switch back to stretch for hwaccel issues
This commit is contained in:
parent
6f7b70665b
commit
b615b84f57
@ -1,9 +1,10 @@
|
|||||||
FROM debian:buster-slim
|
FROM debian:stretch-slim
|
||||||
LABEL maintainer "blakeb@blakeshome.com"
|
LABEL maintainer "blakeb@blakeshome.com"
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
# Install packages for apt repo
|
# Install packages for apt repo
|
||||||
RUN apt -qq update && apt -qq install --no-install-recommends -y \
|
RUN apt -qq update && apt -qq install --no-install-recommends -y \
|
||||||
|
apt-transport-https ca-certificates \
|
||||||
gnupg wget \
|
gnupg wget \
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
python3 \
|
python3 \
|
||||||
@ -15,7 +16,7 @@ RUN apt -qq update && apt -qq install --no-install-recommends -y \
|
|||||||
# pillow-simd
|
# pillow-simd
|
||||||
# zlib1g-dev libjpeg-dev \
|
# zlib1g-dev libjpeg-dev \
|
||||||
# VAAPI drivers for Intel hardware accel
|
# VAAPI drivers for Intel hardware accel
|
||||||
libva-drm2 libva2 i965-va-driver vainfo \
|
i965-va-driver vainfo \
|
||||||
&& echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \
|
&& echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" > /etc/apt/sources.list.d/coral-edgetpu.list \
|
||||||
&& wget -q -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
|
&& wget -q -O - https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \
|
||||||
&& apt -qq update \
|
&& apt -qq update \
|
||||||
|
@ -133,7 +133,7 @@ def main():
|
|||||||
response.headers['Content-Type'] = 'image/jpg'
|
response.headers['Content-Type'] = 'image/jpg'
|
||||||
return response
|
return response
|
||||||
else:
|
else:
|
||||||
return f'Camera named {camera_name} not found', 404
|
return "Camera named {} not found".format(camera_name), 404
|
||||||
|
|
||||||
@app.route('/<camera_name>')
|
@app.route('/<camera_name>')
|
||||||
def mjpeg_feed(camera_name):
|
def mjpeg_feed(camera_name):
|
||||||
@ -142,7 +142,7 @@ def main():
|
|||||||
return Response(imagestream(camera_name),
|
return Response(imagestream(camera_name),
|
||||||
mimetype='multipart/x-mixed-replace; boundary=frame')
|
mimetype='multipart/x-mixed-replace; boundary=frame')
|
||||||
else:
|
else:
|
||||||
return f'Camera named {camera_name} not found', 404
|
return "Camera named {} not found".format(camera_name), 404
|
||||||
|
|
||||||
def imagestream(camera_name):
|
def imagestream(camera_name):
|
||||||
while True:
|
while True:
|
||||||
|
@ -254,7 +254,7 @@ class ObjectTracker(threading.Thread):
|
|||||||
self.camera.objects_tracked.notify_all()
|
self.camera.objects_tracked.notify_all()
|
||||||
|
|
||||||
def register(self, index, obj):
|
def register(self, index, obj):
|
||||||
id = f"{str(obj['frame_time'])}-{index}"
|
id = "{}-{}".format(str(obj['frame_time']), index)
|
||||||
obj['id'] = id
|
obj['id'] = id
|
||||||
obj['top_score'] = obj['score']
|
obj['top_score'] = obj['score']
|
||||||
self.add_history(obj)
|
self.add_history(obj)
|
||||||
@ -396,7 +396,7 @@ class BestFrames(threading.Thread):
|
|||||||
best_frame = self.camera.frame_cache[obj['frame_time']]
|
best_frame = self.camera.frame_cache[obj['frame_time']]
|
||||||
|
|
||||||
draw_box_with_label(best_frame, obj['box']['xmin'], obj['box']['ymin'],
|
draw_box_with_label(best_frame, obj['box']['xmin'], obj['box']['ymin'],
|
||||||
obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{int(obj['score']*100)}% {obj['area']}")
|
obj['box']['xmax'], obj['box']['ymax'], obj['name'], "{}% {}".format(int(obj['score']*100), obj['area']))
|
||||||
|
|
||||||
# print a timestamp
|
# print a timestamp
|
||||||
time_to_show = datetime.datetime.fromtimestamp(obj['frame_time']).strftime("%m/%d/%Y %H:%M:%S")
|
time_to_show = datetime.datetime.fromtimestamp(obj['frame_time']).strftime("%m/%d/%Y %H:%M:%S")
|
||||||
|
@ -329,11 +329,11 @@ class Camera:
|
|||||||
tracked_objects = copy.deepcopy(self.object_tracker.tracked_objects)
|
tracked_objects = copy.deepcopy(self.object_tracker.tracked_objects)
|
||||||
|
|
||||||
for obj in detected_objects:
|
for obj in detected_objects:
|
||||||
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{int(obj['score']*100)}% {obj['area']}", thickness=3)
|
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], "{}% {}".format(int(obj['score']*100), obj['area']), thickness=3)
|
||||||
|
|
||||||
for id, obj in tracked_objects.items():
|
for id, obj in tracked_objects.items():
|
||||||
color = (0, 255,0) if obj['frame_time'] == frame_time else (255, 0, 0)
|
color = (0, 255,0) if obj['frame_time'] == frame_time else (255, 0, 0)
|
||||||
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], f"{id}", color=color, thickness=1, position='bl')
|
draw_box_with_label(frame, obj['box']['xmin'], obj['box']['ymin'], obj['box']['xmax'], obj['box']['ymax'], obj['name'], id, color=color, thickness=1, position='bl')
|
||||||
|
|
||||||
# print a timestamp
|
# print a timestamp
|
||||||
time_to_show = datetime.datetime.fromtimestamp(frame_time).strftime("%m/%d/%Y %H:%M:%S")
|
time_to_show = datetime.datetime.fromtimestamp(frame_time).strftime("%m/%d/%Y %H:%M:%S")
|
||||||
|
Loading…
Reference in New Issue
Block a user