Made some more progress
Commiting to update the current Docker image on ghcr
This commit is contained in:
parent
4acbba41f9
commit
32d8a12195
|
@ -0,0 +1 @@
|
|||
.config/
|
|
@ -38,5 +38,5 @@ COPY . ./
|
|||
RUN pip3 install -r requirements.txt
|
||||
# Install wait-for-it so this can easily be used with docker-compose
|
||||
# Example: command: ["./wait-for-it.sh", "bridge:8554", "--", "python", "main.py"]
|
||||
RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && chmod +x wait-for-it.sh && mv wait-for-it.sh /usr/local/bin
|
||||
CMD ["python", "main.py"]
|
||||
RUN wget https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh && chmod +x wait-for-it.sh && mv wait-for-it.sh /bin
|
||||
CMD ["python3", "main.py"]
|
||||
|
|
|
@ -18,6 +18,7 @@ services:
|
|||
all:
|
||||
aliases:
|
||||
- bridge
|
||||
- wyze-bridge
|
||||
ntfy:
|
||||
image: binwiederhier/ntfy
|
||||
container_name: ntfy-wyze
|
||||
|
@ -46,9 +47,18 @@ services:
|
|||
- RUN_BY_COMPOSE=true
|
||||
depends_on:
|
||||
- bridge
|
||||
# Use wait-for-it to wait for the bridge at port 8888 (hls) to be ready and then run /app/main.py
|
||||
# command: /bin/bash -c "wait-for-it.sh -h bridge -p 8888 --timeout=0 --strict -- echo "done" && python /app/main.py"
|
||||
|
||||
|
||||
# How can this be run and a .env file passed?
|
||||
# docker-compose up -d --env-file .env
|
||||
# Use curl to check if the rtsp stream is up, then run the face recognition
|
||||
command: >
|
||||
/bin/sh -c "
|
||||
while true; do
|
||||
curl -s http://bridge:8888/cv/0.m3u8 > /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo 'Stream is up, running face recognition'
|
||||
python3 /app/main.py
|
||||
else
|
||||
echo 'Stream is down, waiting 5 seconds'
|
||||
sleep 5
|
||||
fi
|
||||
done
|
||||
"
|
||||
|
41
main.py
41
main.py
|
@ -33,6 +33,8 @@ def write_config():
|
|||
json.dump(config, config_file, indent=4)
|
||||
|
||||
|
||||
print("Hello, world!")
|
||||
|
||||
# Initialize some variables
|
||||
face_locations = []
|
||||
face_encodings = []
|
||||
|
@ -44,7 +46,7 @@ process_this_frame = True
|
|||
# Load the config file, if it does not exist or is blank, create it
|
||||
config = {
|
||||
# If RUN_BY_COMPOSE is true, set url to rtsp://wyze-bridge:8554/wyze_cam_name, otherwise set it to "rtsp://localhost:8554/wyze_cam_name"
|
||||
"URL": "rtsp://localhost:8554/wyze_cam_name" if not RUN_BY_COMPOSE else "rtsp://wyze-bridge:8554/wyze_cam_name",
|
||||
"URL": "rtsp://localhost:8554/wyze_cam_name" if not RUN_BY_COMPOSE else "rtsp://bridge:8554/wyze_cam_name",
|
||||
"run_scale": "0.25",
|
||||
"view_scale": "0.75",
|
||||
"faces": {
|
||||
|
@ -85,24 +87,25 @@ else:
|
|||
print(f"Current config: {config}")
|
||||
|
||||
# Try this 5 times, 5 seconds apart. If the stream is not available, exit
|
||||
for i in range(5):
|
||||
# Check if HLS stream is available using the requests library
|
||||
# If it is not, print an error and exit
|
||||
try:
|
||||
# Replace rtsp with http and the port with 8888
|
||||
url = URL.replace("rtsp", "http").replace(":8554", ":8888")
|
||||
r = requests.get(url)
|
||||
if r.status_code != 200:
|
||||
print("HLS stream not available, please check your URL")
|
||||
exit()
|
||||
except requests.exceptions.RequestException as e:
|
||||
print("HLS stream not available, please check your URL")
|
||||
if i == 4:
|
||||
exit()
|
||||
else:
|
||||
print(f"Retrying in 5 seconds ({i+1}/5)")
|
||||
time.sleep(5)
|
||||
continue
|
||||
# for i in range(5):
|
||||
# # Check if HLS stream is available using the requests library
|
||||
# # If it is not, print an error and exit
|
||||
# url = URL.replace("rtsp", "http").replace(":8554", ":8888")
|
||||
# print(f"Checking if HLS stream is available at {url}...")
|
||||
# try:
|
||||
# # Replace rtsp with http and the port with 8888
|
||||
# r = requests.get(url)
|
||||
# if r.status_code != 200:
|
||||
# print("HLS stream not available, please check your URL")
|
||||
# exit()
|
||||
# except requests.exceptions.RequestException as e:
|
||||
# print("HLS stream not available, please check your URL")
|
||||
# if i == 4:
|
||||
# exit()
|
||||
# else:
|
||||
# print(f"Retrying in 5 seconds ({i+1}/5)")
|
||||
# time.sleep(5)
|
||||
# continue
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue