snowzach / doods2

API for detecting objects in images and video streams using Tensorflow
MIT License
221 stars 28 forks source link

RTSP Stream - Exception in ASGI application #83

Closed conotto closed 5 months ago

conotto commented 1 year ago

Hi, after starting container with docker run -it -p 8080:8080 snowzach/doods2:latest and passing a hikvision rtsp url on the web ui, i get this error in the console. rtsp url has been confirmed working with ffplay

2023-05-17 19:21:27,869 - uvicorn.error - ERROR - Exception in ASGI application Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/uvicorn/protocols/http/h11_impl.py", line 373, in run_asgi result = await app(self.scope, self.receive, self.send) File "/usr/local/lib/python3.8/dist-packages/uvicorn/middleware/proxy_headers.py", line 75, in call return await self.app(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/fastapi/applications.py", line 208, in call await super().call(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/starlette/applications.py", line 112, in call await self.middleware_stack(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 181, in call raise exc File "/usr/local/lib/python3.8/dist-packages/starlette/middleware/errors.py", line 159, in call await self.app(scope, receive, _send) File "/usr/local/lib/python3.8/dist-packages/prometheus_fastapi_instrumentator/middleware.py", line 103, in call raise exc File "/usr/local/lib/python3.8/dist-packages/prometheus_fastapi_instrumentator/middleware.py", line 101, in call await self.app(scope, receive, send_wrapper) File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 82, in call raise exc File "/usr/local/lib/python3.8/dist-packages/starlette/exceptions.py", line 71, in call await self.app(scope, receive, sender) File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 656, in call await route.handle(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 259, in handle await self.app(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/starlette/routing.py", line 64, in app await response(scope, receive, send) File "/usr/local/lib/python3.8/dist-packages/starlette/responses.py", line 227, in call await wrap(partial(self.listen_for_disconnect, receive)) File "/usr/local/lib/python3.8/dist-packages/anyio/_backends/_asyncio.py", line 662, in aexit raise exceptions[0] File "/usr/local/lib/python3.8/dist-packages/starlette/responses.py", line 223, in wrap await func() File "/usr/local/lib/python3.8/dist-packages/starlette/responses.py", line 212, in stream_response async for chunk in self.body_iterator: File "/opt/doods/streamer.py", line 48, in mjpeg_streamer for detect_response in gen: File "/opt/doods/streamer.py", line 18, in start_stream vcap = self.create_vcap(url) File "/opt/doods/streamer.py", line 42, in create_vcap vcap = FreshestFrame(vcap) File "/opt/doods/fresh_frame.py", line 12, in init assert self.capture.isOpened() AssertionError

snowzach commented 1 year ago

Hmmm... I had Hikvision cameras... They worked okay for me.. What URL are you using?

conotto commented 1 year ago

This is the url that i am using rtsp://USER:PASS@HOST:554/Streaming/channels/101/

Fore reference this is the ffplay output # ffplay 'rtsp://USER:PASS@HOST:554/Streaming/channels/101/' ffplay version 6.0 Copyright (c) 2003-2023 the FFmpeg developers built with Apple clang version 14.0.3 (clang-1403.0.22.14.1) configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.0 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-neon libavutil 58. 2.100 / 58. 2.100 libavcodec 60. 3.100 / 60. 3.100 libavformat 60. 3.100 / 60. 3.100 libavdevice 60. 1.100 / 60. 1.100 libavfilter 9. 3.100 / 9. 3.100 libswscale 7. 1.100 / 7. 1.100 libswresample 4. 10.100 / 4. 10.100 libpostproc 57. 1.100 / 57. 1.100 [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 9 packets [h264 @ 0x136f16160] concealing 6885 DC, 6885 AC, 6885 MV errors in P frame [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 1 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 36 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 13 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 16 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 9 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 8 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 12 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 9 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 11 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 11 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 10 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 13 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 12 packets [rtsp @ 0x13790c440] max delay reached. need to consume packet [rtsp @ 0x13790c440] RTP: missed 1 packets [h264 @ 0x136f16160] concealing 6074 DC, 6074 AC, 6074 MV errors in I frame Input #0, rtsp, from 'rtsp://USER:PASS@HOST:554/Streaming/channels/101/': Metadata: title : HIK Media Server V4.72.107 comment : HIK Media Server Session Description : standard Duration: N/A, start: 0.040000, bitrate: N/A Stream #0:0: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080, 25 fps, 25 tbr, 90k tbn [h264 @ 0x117c04200] concealing 6885 DC, 6885 AC, 6885 MV errors in P frame [h264 @ 0x117c1ff40] concealing 6074 DC, 6074 AC, 6074 MV errors in I frame [swscaler @ 0x120d08000] deprecated pixel format used, make sure you did set range correctly [swscaler @ 0x119130000] deprecated pixel format used, make sure you did set range correctly [swscaler @ 0x120d08000] deprecated pixel format used, make sure you did set range correctly [swscaler @ 0x128760000] deprecated pixel format used, make sure you did set range correctly 3.81 M-V: 0.036 fd= 0 aq= 0KB vq= 748KB sq= 0B f=0/0

snowzach commented 1 year ago

Boy that's a lot of noise... Maybe try 15fps? From what I've read, 15 is usually what you want security cameras set to.. That's the URL I used and it worked okay for me. It doesn't like something about the format is all I can figure. I use 15fps and constant bitrate typically for my cameras.

snowzach commented 5 months ago

Old ticket. Closing due to age.