Open eldadh opened 3 years ago
Yes that is something i am planning to do. However, i do not have a device to test with so it could turn out problematic depending on what is required to ge it to work on this device
https://hub.docker.com/r/lumaia/viseron-jetson ? Not tested though
Was not aware of that one, but its not linked to any repository so cant check the Dockerfile...
I own that repo, still testing it on my free time but the dockerfiles still require some work. That is the main reason i didn't have a merge request ready. If you want to make things faster, i can share them here. Also, the nvidia ffmpeg hevc crashes with segfault on my hikvision rtsp streams, so it should be working without hw decoding at least. For my usage it is enough because i have an mjpeg substream for object detection.
Would be great to see your Dockerfiler for some inspiration. I will need to adapt it to fit into my multiarch builds tho
Just forked and made a commit with everything in https://github.com/l-maia/viseron. Note that inside the jetson folder there's an additional README.md with a description of a change you are required to do in the jetson host to provide the multimedia api folders to the ffmpeg container.
Just started to try and get this working.
Can any of you try if this command just errors out or not?
docker run -it --rm --runtime=nvidia roflcoopter/jetson-nano-ffmpeg:4.4 ffmpeg --help
The command returns:
Error: Can't initialize nvrm channel
Couldn't create ddkvic Session: Cannot allocate memory
nvbuf_utils: Could not create Default NvBufferSession
This version requires --privileged, then it works as expected.
The command returns:
Error: Can't initialize nvrm channel
Couldn't create ddkvic Session: Cannot allocate memory
nvbuf_utils: Could not create Default NvBufferSession
This version requires --privileged, then it works as expected.
Ohh so it works if you add --privileged?
Ohh so it works if you add --privileged?
Yes. At least the --help flag, although I didn't had the time to test with an example h264 stream to check if the hw decoder works.
just pushed an image which contains the full install of Viseron: roflcoopter/jetson-nano-viseron:dev
Anyone who can try it out?
Note that there is currently a regression which causes Viseron to crash if you dont use MQTT which i will fix shortly.
And also, there is no automatic detection of what codec to use just yet so you need to specify that manually in the config for your camera like this: codec: h264_nvmpi
with the fallowing config
cameras:
logging: level: debug
motion_detection: interval: 1 trigger_detector: true timeout: true max_timeout: 30 width: 300 height: 300 area: 0.1 frames: 3
mqtt:
broker: ** port: 1883 username: password:
recorder: lookback: 10 timeout: 10 retain: 3 folder: /recordings
`
I have tried to run it and received this error:
[s6-init] making user provided files available at /var/run/s6/etc...exited 0. [s6-init] ensuring user provided files have correct perms...exited 0. [fix-attrs.d] applying ownership & permissions fixes... [fix-attrs.d] done. [cont-init.d] executing container initialization scripts... [cont-init.d] 10-adduser: executing... **** UID/GID *** User uid: 0 User gid: 0 ** Done ** [cont-init.d] 10-adduser: exited 0. [cont-init.d] 20-gid-video-device: executing... [cont-init.d] 20-gid-video-device: exited 0. [cont-init.d] 30-edgetpu-permission: executing... ** Setting EdgeTPU permissions * Coral Vendor IDs: "1a6e" "18d1" No EdgeTPU USB device was found ** Done ** [cont-init.d] 30-edgetpu-permission: exited 0. [cont-init.d] 40-set-env-vars: executing... ** Checking for hardware acceleration platforms ** OpenCL cannot be used VA-API cannot be used CUDA cannot be used * Done *** [cont-init.d] 40-set-env-vars: exited 0. [cont-init.d] 50-check-if-rpi: executing... ** Checking if we are running on an RPi ** Not running on any supported RPi * Done *** [cont-init.d] 50-check-if-rpi: exited 0. [cont-init.d] done. [services.d] starting services [services.d] done. [2021-06-07 14:12:01] [INFO ] [viseron ] - ------------------------------------------- [2021-06-07 14:12:01] [INFO ] [viseron ] - Initializing... [2021-06-07 14:12:01] [DEBUG ] [viseron.watchdog ] - Starting scheduler [2021-06-07 14:12:01] [DEBUG ] [viseron ] - Starting cleanup scheduler [2021-06-07 14:12:01] [DEBUG ] [viseron ] - Running initial cleanup [2021-06-07 14:12:01] [DEBUG ] [viseron.cleanup ] - Running cleanup [2021-06-07 14:12:01] [INFO ] [viseron.mqtt ] - Initializing MQTT connection [2021-06-07 14:12:01] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-07 14:12:01] [DEBUG ] [viseron.detector ] - Initializing object detector darknet [2021-06-07 14:12:01] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f3026e940> [2021-06-07 14:12:01] [DEBUG ] [viseron.detector ] - Object detector initialized [2021-06-07 14:12:01] [INFO ] [viseron ] - Initializing NVR threads [2021-06-07 14:12:01] [DEBUG ] [viseron.nvr.entrance ] - Initializing NVR thread [2021-06-07 14:12:01] [DEBUG ] [viseron.camera.entrance ] - Initializing camera Entrance [2021-06-07 14:12:01] [DEBUG ] [viseron.camera.stream.entrance] - Getting stream information for rtsp://:@*****:8554/unicast Exception in thread setup.Entrance: Traceback (most recent call last): File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/src/viseron/init.py", line 144, in run FFMPEGNVR(camera_config, self._detector) File "/src/viseron/nvr.py", line 120, in init self.camera = FFMPEGCamera(config, detector) File "/src/viseron/camera/init.py", line 34, in init self.initialize_camera(detector) File "/src/viseron/camera/init.py", line 59, in initialize_camera self.stream = Stream( File "/src/viseron/camera/stream.py", line 63, in init ) = self.get_stream_information(self.stream_config.stream_url) File "/src/viseron/camera/stream.py", line 195, in get_stream_information width, height, fps, codec, audio_codec = self.ffprobe_stream_information( File "/src/viseron/camera/stream.py", line 160, in ffprobe_stream_information streams = self.run_ffprobe(stream_url) File "/src/viseron/camera/stream.py", line 150, in run_ffprobe output: dict = json.loads(stdout) File "/usr/local/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/local/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/local/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2021-06-07 14:12:05] [INFO ] [viseron ] - Initialization complete [cont-finish.d] executing container finish scripts... [cont-finish.d] done. [s6-finish] waiting for services. [s6-finish] sending all processes the TERM signal. [s6-finish] sending all processes the KILL signal and exiting. `
@eldadh Whats the output of this command? You gotta add your username, pass and ip address
docker run -it --rm --entrypoint "" roflcoopter/jetson-nano-viseron:dev ffprobe -print_format json -show_error -show_streams rtsp://username:password@ipaddress:8554/unicast
the output is: Error: Can't initialize nvrm channel Error: Can't initialize nvrm channel Couldn't create ddkvic Session: Cannot allocate memory nvbuf_utils: Could not create Default NvBufferSession
When i run with --privileged
nvbuf_utils: Could not get EGL display connection ffprobe version 4.4 Copyright (c) 2007-2021 the FFmpeg developers built with gcc 7 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) configuration: --disable-debug --disable-doc --disable-ffplay --enable-shared --enable-avresample --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-gpl --enable-libass --enable-fontconfig --enable-libfreetype --enable-libvidstab --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxcb --enable-libx265 --enable-libxvid --enable-libx264 --enable-nonfree --enable-openssl --enable-libfdk_aac --enable-postproc --enable-small --enable-version3 --enable-libbluray --enable-libzmq --extra-libs=-ldl --prefix=/opt/ffmpeg --enable-libopenjpeg --enable-libkvazaar --enable-libaom --extra-libs=-lpthread --enable-neon --enable-v4l2_m2m --enable-nvmpi --extra-cflags=-I/opt/ffmpeg/include --extra-ldflags=-L/opt/ffmpeg/lib libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 { Input #0, rtsp, from 'rtsp://:**@192.168.3.80:8554/unicast': Metadata: title : LIVE555 Streaming Media v2020.05.15 comment : LIVE555 Streaming Media v2020.05.15 Duration: N/A, start: 2.659989, bitrate: N/A Stream #0:0: Video: h264, yuv420p(progressive), 1920x1080, 25 fps, 50 tbr, 90k tbn, 50 tbc "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "unknown", "profile": "77", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "r_frame_rate": "50/1", "avg_frame_rate": "25/1", "time_base": "1/90000", "start_pts": 239399, "start_time": "2.659989", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0 } } ] }
@eldadh Thanks, and this command?
docker run -it --rm --entrypoint "" --privileged roflcoopter/jetson-nano-viseron:dev ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://username:password@ipaddress:8554/unicast
`
nvbuf_utils: Could not get EGL display connection { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "unknown", "profile": "77", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "r_frame_rate": "10/1", "avg_frame_rate": "25/1", "time_base": "1/90000", "start_pts": 248405, "start_time": "2.760056", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0 } } ] }
`
`
nvbuf_utils: Could not get EGL display connection { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "unknown", "profile": "77", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "r_frame_rate": "10/1", "avg_frame_rate": "25/1", "time_base": "1/90000", "start_pts": 248405, "start_time": "2.760056", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0 } } ] }
`
Ahh the first part is whats causing the JSON decode error, nvbuf_utils: Could not get EGL display connection
What happens if you add export DISPLAY=:0
?
docker run -it --rm --entrypoint "" --privileged roflcoopter/jetson-nano-viseron:dev export DISPLAY=:0 && ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://username:password@ipaddress:8554/unicast
It wont give our anything: Single line : "export: usage: export variable value prog..."
aprently it is mention in the NVIDIA forum aswell: https://forums.developer.nvidia.com/t/nvbuf-utils-could-not-get-egl-display-connection/84038/13
BTW does the the Object Detection leverages Jetpack (NVIDIA SDK) or not yet :-)
@eldadh Okay, can you exec into the container and run the commands one by one?
1) docker run -it --rm --entrypoint "" --privileged roflcoopter/jetson-nano-viseron:dev /bin/bash
2) export DISPLAY=:0
3) ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://username:password@ipaddress:8554/unicast
nvbuf_utils: Could not get EGL display connection { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "unknown", "profile": "77", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "r_frame_rate": "10/1", "avg_frame_rate": "25/1", "time_base": "1/90000", "start_pts": 221390, "start_time": "2.459889", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0 } } ] }
@eldadh
Arggg, need to get rid of that nvbuf_utils: Could not get EGL display connection
somehow...
Does this work?
1) docker run -it --rm --entrypoint "" --privileged roflcoopter/jetson-nano-viseron:dev /bin/bash
2) unset DISPLAY
3) ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://username:password@ipaddress:8554/unicast
tried it already :-)
unfortunatly same result
nvbuf_utils: Could not get EGL display connection { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "unknown", "profile": "77", "codec_type": "video", "codec_tag_string": "[0][0][0][0]", "codec_tag": "0x0000", "width": 1920, "height": 1080, "coded_width": 1920, "coded_height": 1080, "closed_captions": 0, "has_b_frames": 0, "pix_fmt": "yuv420p", "level": 40, "chroma_location": "left", "field_order": "progressive", "refs": 1, "is_avc": "false", "nal_length_size": "0", "r_frame_rate": "10/1", "avg_frame_rate": "25/1", "time_base": "1/90000", "start_pts": 68399, "start_time": "0.759989", "bits_per_raw_sample": "8", "disposition": { "default": 0, "dub": 0, "original": 0, "comment": 0, "lyrics": 0, "karaoke": 0, "forced": 0, "hearing_impaired": 0, "visual_impaired": 0, "clean_effects": 0, "attached_pic": 0, "timed_thumbnails": 0 } } ] }
you can hide the line using "sed" ( ugly but works)
ffprobe -hide_banner -loglevel error -print_format json -show_error -show_streams rtsp://:**@:8554/unicast | tail -n +2
Yeah i guess ill have to trim it off manually. It should be easy enough since i am already parsing it in the code.
Ill push a new version to DockerHub soon, ill let you know when its ready
I haven't got the Jetson with me to test, but why not just parse separately stdout and stderr? I guess appending 2> /dev/null to the command will hide the errors if the message is properly written to stderr. Then you could work with separate pipes in python and parse them only if they come from stdout with the expected format.
@l-maia Good call, i actually thought i was doing that but apparently not.
Just pushed a new version of roflcoopter/jetson-nano-viseron:dev
that separates stdout and stderr aswell as trimming away any text before the json object starts.
I tested as much as i could but its hard for me to verify as the container wont run at all since i dont have a Nano, so thanks for sticking with me through this one
[s6-init] making user provided files available at /var/run/s6/etc...exited 0. [s6-init] ensuring user provided files have correct perms...exited 0. [fix-attrs.d] applying ownership & permissions fixes... [fix-attrs.d] done. [cont-init.d] executing container initialization scripts... [cont-init.d] 10-adduser: executing... **** UID/GID *** User uid: 0 User gid: 0 ** Done ** [cont-init.d] 10-adduser: exited 0. [cont-init.d] 20-gid-video-device: executing... [cont-init.d] 20-gid-video-device: exited 0. [cont-init.d] 30-edgetpu-permission: executing... ** Setting EdgeTPU permissions * Coral Vendor IDs: "1a6e" "18d1" No EdgeTPU USB device was found ** Done ** [cont-init.d] 30-edgetpu-permission: exited 0. [cont-init.d] 40-set-env-vars: executing... ** Checking for hardware acceleration platforms ** OpenCL cannot be used VA-API cannot be used CUDA cannot be used * Done *** [cont-init.d] 40-set-env-vars: exited 0. [cont-init.d] 50-check-if-rpi: executing... ** Checking if we are running on an RPi ** Not running on any supported RPi * Done *** [cont-init.d] 50-check-if-rpi: exited 0. [cont-init.d] done. [services.d] starting services [services.d] done. [2021-06-08 10:08:02] [INFO ] [viseron ] - ------------------------------------------- [2021-06-08 10:08:02] [INFO ] [viseron ] - Initializing... [2021-06-08 10:08:02] [DEBUG ] [viseron.watchdog ] - Starting scheduler [2021-06-08 10:08:02] [DEBUG ] [viseron ] - Starting cleanup scheduler [2021-06-08 10:08:02] [DEBUG ] [viseron ] - Running initial cleanup [2021-06-08 10:08:02] [DEBUG ] [viseron.cleanup ] - Running cleanup [2021-06-08 10:08:02] [INFO ] [viseron.mqtt ] - Initializing MQTT connection [2021-06-08 10:08:02] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 10:08:02] [DEBUG ] [viseron.detector ] - Initializing object detector darknet [2021-06-08 10:08:05] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f25b5c6a0> [2021-06-08 10:08:05] [DEBUG ] [viseron.detector ] - Object detector initialized [2021-06-08 10:08:05] [INFO ] [viseron ] - Initializing NVR threads [2021-06-08 10:08:05] [DEBUG ] [viseron.nvr.entrance ] - Initializing NVR thread [2021-06-08 10:08:05] [DEBUG ] [viseron.camera.entrance ] - Initializing camera Entrance [2021-06-08 10:08:05] [DEBUG ] [viseron.camera.stream.entrance] - Getting stream information for rtsp://:@192.168.3.82:8554/unicast [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.stream.entrance] - Stream information from FFprobe: Width: 1920 Height: 1080 FPS: 25.0 Video Codec: h264 Audio Codec: None [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.entrance ] - Resolution: 1920x1080 @ 25.0 FPS [2021-06-08 10:08:10] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/object, <queue.Queue object at 0x7f2638b190> [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.entrance ] - Starting decoder thread [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.entrance ] - Running decoder entrance.object_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.entrance ] - Camera Entrance initialized [2021-06-08 10:08:10] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/object, <queue.Queue object at 0x7f25b5c5b0> [2021-06-08 10:08:10] [DEBUG ] [viseron.motion.entrance ] - Initializing motion detector [2021-06-08 10:08:10] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/motion, <queue.Queue object at 0x7f08043340> [2021-06-08 10:08:10] [DEBUG ] [viseron.motion.entrance ] - Starting decoder thread [2021-06-08 10:08:10] [DEBUG ] [viseron.motion.entrance ] - Running decoder entrance.motion_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 10:08:10] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/scan/motion, <queue.Queue object at 0x7f25b6cd00> [2021-06-08 10:08:10] [DEBUG ] [viseron.motion.entrance ] - Motion detector initialized [2021-06-08 10:08:10] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/motion, <queue.Queue object at 0x7f25b6ce50> [2021-06-08 10:08:10] [DEBUG ] [viseron.nvr.entrance ] - Starting camera [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.entrance ] - Starting capture thread [2021-06-08 10:08:10] [DEBUG ] [viseron.recorder.entrance] - Initializing ffmpeg recorder [2021-06-08 10:08:10] [DEBUG ] [viseron.camera.stream.entrance] - FFMPEG decoder command: entrance -hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://:@192.168.3.82:8554/unicast -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy /segments/Entrance/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1 [2021-06-08 10:08:10] [DEBUG ] [viseron.recorder.entrance] - Creating folder /segments/Entrance [2021-06-08 10:08:10] [DEBUG ] [viseron.nvr.entrance ] - Waiting for first frame [2021-06-08 10:08:10] [DEBUG ] [viseron.nvr.entrance ] - NVR thread initialized [2021-06-08 10:08:10] [INFO ] [viseron ] - Initialization complete [2021-06-08 10:08:13] [ERROR ] [viseron.camera.stream.entrance] - Failed to query video capabilities: Inappropriate ioctl for device [2021-06-08 10:08:13] [ERROR ] [viseron.camera.stream.entrance] - libv4l2: error getting capabilities: Inappropriate ioctl for device [2021-06-08 10:08:14] [ERROR ] [viseron.camera.entrance ] - FFmpeg process has exited [2021-06-08 10:08:19] [ERROR ] [viseron.camera.entrance ] - Restarting frame pipe [2021-06-08 10:08:19] [DEBUG ] [viseron.camera.stream.entrance] - Performing a sanity check on the ffmpeg command [2021-06-08 10:08:22] [ERROR ] [viseron.camera.stream.entrance] - Error starting decoder command! Failed to query video capabilities: Inappropriate ioctl for device libv4l2: error getting capabilities: Inappropriate ioctl for device [2021-06-08 10:08:29] [ERROR ] [viseron.camera.stream.entrance] - Error starting decoder command! Failed to query video capabilities: Inappropriate ioctl for device libv4l2: error getting capabilities: Inappropriate ioctl for device Retrying in 5 seconds, message repeated 2 times
Mine has a different message and am unable to access the user interface at port 8888
Attaching to viseron
viseron | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
viseron | [s6-init] ensuring user provided files have correct perms...exited 0.
viseron | [fix-attrs.d] applying ownership & permissions fixes...
viseron | [fix-attrs.d] done.
viseron | [cont-init.d] executing container initialization scripts...
viseron | [cont-init.d] 10-adduser: executing...
viseron | ************************ UID/GID *************************
viseron | User uid: 0
viseron | User gid: 0
viseron | ************************** Done **************************
viseron | [cont-init.d] 10-adduser: exited 0.
viseron | [cont-init.d] 20-gid-video-device: executing...
viseron | [cont-init.d] 20-gid-video-device: exited 0.
viseron | [cont-init.d] 30-edgetpu-permission: executing...
viseron | ************** Setting EdgeTPU permissions ***************
viseron | Coral Vendor IDs:
viseron | "1a6e"
viseron | "18d1"
viseron | No EdgeTPU USB device was found
viseron | ************************** Done **************************
viseron | [cont-init.d] 30-edgetpu-permission: exited 0.
viseron | [cont-init.d] 40-set-env-vars: executing...
viseron | ****** Checking for hardware acceleration platforms ******
viseron | OpenCL cannot be used
viseron | VA-API cannot be used
viseron | CUDA cannot be used
viseron | *********************** Done *****************************
viseron | [cont-init.d] 40-set-env-vars: exited 0.
viseron | [cont-init.d] 50-check-if-rpi: executing...
viseron | ********** Checking if we are running on an RPi **********
viseron | Not running on any supported RPi
viseron | *********************** Done *****************************
viseron | [cont-init.d] 50-check-if-rpi: exited 0.
viseron | [cont-init.d] done.
viseron | [services.d] starting services
viseron | [services.d] done.
viseron | [2021-06-08 18:25:59] [INFO ] [viseron ] - -------------------------------------------
viseron | [2021-06-08 18:25:59] [INFO ] [viseron ] - Initializing...
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron.watchdog ] - Starting scheduler
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron ] - Starting cleanup scheduler
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron ] - Running initial cleanup
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron.cleanup ] - Running cleanup
viseron | [2021-06-08 18:25:59] [INFO ] [viseron.mqtt ] - Initializing MQTT connection
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0
viseron | [2021-06-08 18:25:59] [DEBUG ] [viseron.detector ] - Initializing object detector darknet
viseron | [2021-06-08 18:26:02] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f2feaac40>
viseron | [2021-06-08 18:26:02] [DEBUG ] [viseron.detector ] - Object detector initialized
viseron | [2021-06-08 18:26:02] [INFO ] [viseron ] - Initializing NVR threads
viseron | [2021-06-08 18:26:02] [DEBUG ] [viseron.nvr.foyer ] - Initializing NVR thread
viseron | [2021-06-08 18:26:02] [DEBUG ] [viseron.camera.foyer ] - Initializing camera Foyer
viseron | [2021-06-08 18:26:02] [DEBUG ] [viseron.camera.stream.foyer] - Getting stream information for rtsp://*****:*****@192.168.0.88:554/cam/realmonitor?channel=17@subtype=1
viseron | [2021-06-08 18:26:08] [DEBUG ] [viseron.camera.stream.foyer] - Stream information from FFprobe: Width: 704 Height: 576 FPS: 20.0 Video Codec: h264 Audio Codec: None
viseron | [2021-06-08 18:26:08] [DEBUG ] [viseron.camera.stream_segments.foyer] - Getting stream information for rtsp://*****:*****@192.168.0.88:554/cam/realmonitor?channel=17@subtype=0
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.stream_segments.foyer] - Stream information from FFprobe: Width: 1920 Height: 1080 FPS: 20.0 Video Codec: h264 Audio Codec: None
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.foyer ] - Resolution: 704x576 @ 3 FPS
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic foyer/frame/decode/object, <queue.Queue object at 0x7f2c0134c0>
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.foyer ] - Starting decoder thread
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.foyer ] - Running decoder foyer.object_detection at 1s interval, every 3 frame(s)
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.foyer ] - Camera Foyer initialized
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic foyer/frame/processed/object, <queue.Queue object at 0x7f2fea1b50>
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.motion.foyer ] - Initializing motion detector
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic foyer/frame/decode/motion, <queue.Queue object at 0x7f2c013fd0>
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.motion.foyer ] - Starting decoder thread
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.motion.foyer ] - Running decoder foyer.motion_detection at 1s interval, every 3 frame(s)
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic foyer/frame/scan/motion, <queue.Queue object at 0x7f2c013b80>
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.motion.foyer ] - Motion detector initialized
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic foyer/frame/processed/motion, <queue.Queue object at 0x7f2c0139a0>
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.nvr.foyer ] - Starting camera
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.foyer ] - Starting capture thread
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.recorder.foyer ] - Initializing ffmpeg recorder
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.stream.foyer] - FFMPEG decoder command: foyer -hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -rtsp_transport tcp -i rtsp://*****:*****@192.168.0.88:554/cam/realmonitor?channel=17@subtype=1 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.recorder.foyer ] - Creating folder /segments/Foyer
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.nvr.foyer ] - Waiting for first frame
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.nvr.foyer ] - NVR thread initialized
viseron | [2021-06-08 18:26:11] [INFO ] [viseron ] - Initialization complete
viseron | [2021-06-08 18:26:11] [DEBUG ] [viseron.camera.stream_segments.foyer] - FFMPEG decoder command: foyer_segments -hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -rtsp_transport tcp -i rtsp://*****:*****@192.168.0.88:554/cam/realmonitor?channel=17@subtype=0 -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy /segments/Foyer/%Y%m%d%H%M%S.mp4
viseron | [2021-06-08 18:26:17] [DEBUG ] [viseron.nvr.foyer ] - First frame received
[2021-06-08 18:40:55] [DEBUG ] [viseron.nvr.foyer.object] - Objects: [], message repeated 154 times
viseron |
The logs of my MQTT border indicate that a connection has been made from Viseron
Mine has a different message and am unable to access the user interface at port
8888
From your logs it seems you didn't specify the h264_nvmpi codec for hardware acceleration, so it should be doing software decoding.
My bad, missed that out. Here's what I get after including that:
viseron | [s6-init] making user provided files available at /var/run/s6/etc...exited 0.
viseron | [s6-init] ensuring user provided files have correct perms...exited 0.
viseron | [fix-attrs.d] applying ownership & permissions fixes...
viseron | [fix-attrs.d] done.
viseron | [cont-init.d] executing container initialization scripts...
viseron | [cont-init.d] 10-adduser: executing...
viseron | ************************ UID/GID *************************
viseron | User uid: 0
viseron | User gid: 0
viseron | ************************** Done **************************
viseron | [cont-init.d] 10-adduser: exited 0.
viseron | [cont-init.d] 20-gid-video-device: executing...
viseron | [cont-init.d] 20-gid-video-device: exited 0.
viseron | [cont-init.d] 30-edgetpu-permission: executing...
viseron | ************** Setting EdgeTPU permissions ***************
viseron | Coral Vendor IDs:
viseron | "1a6e"
viseron | "18d1"
viseron | No EdgeTPU USB device was found
viseron | ************************** Done **************************
viseron | [cont-init.d] 30-edgetpu-permission: exited 0.
viseron | [cont-init.d] 40-set-env-vars: executing...
viseron | ****** Checking for hardware acceleration platforms ******
viseron | OpenCL cannot be used
viseron | VA-API cannot be used
viseron | CUDA cannot be used
viseron | *********************** Done *****************************
viseron | [cont-init.d] 40-set-env-vars: exited 0.
viseron | [cont-init.d] 50-check-if-rpi: executing...
viseron | ********** Checking if we are running on an RPi **********
viseron | Not running on any supported RPi
viseron | *********************** Done *****************************
viseron | [cont-init.d] 50-check-if-rpi: exited 0.
viseron | [cont-init.d] done.
viseron | [services.d] starting services
viseron | [services.d] done.
viseron | [2021-06-08 19:01:50] [INFO ] [viseron ] - -------------------------------------------
viseron | [2021-06-08 19:01:50] [INFO ] [viseron ] - Initializing...
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron.watchdog ] - Starting scheduler
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron ] - Starting cleanup scheduler
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron ] - Running initial cleanup
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron.cleanup ] - Running cleanup
viseron | [2021-06-08 19:01:50] [INFO ] [viseron.mqtt ] - Initializing MQTT connection
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0
viseron | [2021-06-08 19:01:50] [DEBUG ] [viseron.detector ] - Initializing object detector darknet
viseron | [2021-06-08 19:01:51] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f60a880a0>
viseron | [2021-06-08 19:01:51] [DEBUG ] [viseron.detector ] - Object detector initialized
viseron | [2021-06-08 19:01:51] [INFO ] [viseron ] - Initializing NVR threads
viseron | [2021-06-08 19:01:51] [DEBUG ] [viseron.nvr.foyer ] - Initializing NVR thread
viseron | [2021-06-08 19:01:51] [DEBUG ] [viseron.camera.foyer ] - Initializing camera Foyer
viseron | [2021-06-08 19:01:51] [DEBUG ] [viseron.camera.stream.foyer] - Getting stream information for rtsp://*****:*****@192.168.0.88:554/cam/realmonitor?channel=17@subtype=1
viseron | [2021-06-08 19:01:54] [DEBUG ] [viseron.camera.stream.foyer] - Stream information from FFprobe: Width: 704 Height: 576 FPS: 20.0 Video Codec: h264 Audio Codec: None
viseron | Exception in thread setup.Foyer:
viseron | Traceback (most recent call last):
viseron | File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
viseron | self.run()
viseron | File "/src/viseron/__init__.py", line 144, in run
viseron | FFMPEGNVR(camera_config, self._detector)
viseron | File "/src/viseron/nvr.py", line 125, in __init__
viseron | self.camera = FFMPEGCamera(config, detector)
viseron | File "/src/viseron/camera/__init__.py", line 34, in __init__
viseron | self.initialize_camera(detector)
viseron | File "/src/viseron/camera/__init__.py", line 52, in initialize_camera
viseron | self._segments = Stream(
viseron | File "/src/viseron/camera/stream.py", line 58, in __init__
viseron | or not self.stream_config.audio_codec
viseron | AttributeError: 'CameraConfig' object has no attribute 'audio_codec'
viseron | [2021-06-08 19:01:54] [INFO ] [viseron ] - Initialization complete
viseron | [cont-finish.d] executing container finish scripts...
viseron | [cont-finish.d] done.
viseron | [s6-finish] waiting for services.
viseron | [s6-finish] sending all processes the TERM signal.
viseron | [s6-finish] sending all processes the KILL signal and exiting.
Something to do with audio codec?
@eldadh
Seems some packages are missing, just pushed a new verison with nvidia-l4t-core
installed from apt
@weitheng
Yes Viseron started up succesfully for you which is good news, but its not utilizing the hardware accelerated decoder h264_nvmpi
, thats why you and eldadh are getting different results.
Right now you have to add codec: h264_nvmpi
manually but when im done it will be selected automatically. You should not specify audio_codec
Something to do with audio codec? Yes.
The generated ffmpeg command is :
-hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://****:*****@192.168.1.2:554/Streaming/Channels/602/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/Campainha/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Which returns:
[mp4 @ 0x55a11d93d0] Could not find tag for codec pcm_mulaw in stream #1, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:1 --
Some cameras specify an audio channel (ex: doorbells)
If you set to ignore the audio track using -an it works as expected:
like: ... copy -c:a copy -an /segments/ ...
@eldadh Seems some packages are missing, just pushed a new verison with
nvidia-l4t-core
installed from apt@weitheng Yes Viseron started up succesfully for you which is good news, but its not utilizing the hardware accelerated decoder
h264_nvmpi
, thats why you and eldadh are getting different results. Right now you have to addcodec: h264_nvmpi
manually but when im done it will be selected automatically. You should not specifyaudio_codec
Hmm, but I did include it in my config just now.
mqtt:
broker: 192.168.0.87
port: 1883
client_id: viseron
username: XXXX
password: XXXX
cameras:
- name: Foyer
mqtt_name: viseron_foyer
host: 192.168.0.88
port: 554
username: XXXX
password: XXXX
path: /cam/realmonitor?channel=17@subtype=0
width: 1920
height: 1080
fps: 5
motion_detection:
interval: 1
trigger_detector: false
object_detection:
interval: 1
labels:
- label: person
confidence: 0.9
substream:
port: 554
path: /cam/realmonitor?channel=17@subtype=1
fps: 3
width: 704
height: 576
codec: h264_nvmpi
logging:
level: debug
Something to do with audio codec? Yes.
The generated ffmpeg command is :
-hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://****:*****@192.168.1.2:554/Streaming/Channels/602/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/Campainha/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Which returns:
[mp4 @ 0x55a11d93d0] Could not find tag for codec pcm_mulaw in stream #1, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:1 --
Some cameras specify an audio channel (ex: doorbells)
If you set to ignore the audio track using -an it works as expected: like:
... copy -c:a copy -an /segments/ ...
Silly question here, how do I do that using docker compose?
Something to do with audio codec? Yes.
The generated ffmpeg command is :
-hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://****:*****@192.168.1.2:554/Streaming/Channels/602/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/Campainha/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Which returns:[mp4 @ 0x55a11d93d0] Could not find tag for codec pcm_mulaw in stream #1, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:1 --
Some cameras specify an audio channel (ex: doorbells) If you set to ignore the audio track using -an it works as expected: like:... copy -c:a copy -an /segments/ ...
Silly question here, how do I do that using docker compose?
You shouldnt have to do that, your camera does not have an audio output so no audio will be recorded
Something to do with audio codec? Yes.
The generated ffmpeg command is :
-hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://****:*****@192.168.1.2:554/Streaming/Channels/602/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/Campainha/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Which returns:[mp4 @ 0x55a11d93d0] Could not find tag for codec pcm_mulaw in stream #1, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:1 --
Some cameras specify an audio channel (ex: doorbells) If you set to ignore the audio track using -an it works as expected: like:... copy -c:a copy -an /segments/ ...
Silly question here, how do I do that using docker compose?
You shouldnt have to do that, your camera does not have an audio output so no audio will be recorded
Hmm, but it doesn't seem to be running now. What could be the problem then?
Need to see a log to know whats going on, but if you are running with codec: h264_nvmpi
you need to pull the image again and recreate the container.
Something to do with audio codec? Yes.
The generated ffmpeg command is :
-hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://****:*****@192.168.1.2:554/Streaming/Channels/602/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/Campainha/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Which returns:[mp4 @ 0x55a11d93d0] Could not find tag for codec pcm_mulaw in stream #1, codec not currently supported in container Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument Error initializing output stream 0:1 --
Some cameras specify an audio channel (ex: doorbells) If you set to ignore the audio track using -an it works as expected: like:... copy -c:a copy -an /segments/ ...
Silly question here, how do I do that using docker compose?
You shouldnt have to do that, your camera does not have an audio output so no audio will be recorded
It does have an output. Some vendors even have an silent audio channel output.
@l-maia Sorry for the confusion, weitheng does not have an audio stream from his camera as indicated by the log
viseron | [2021-06-08 19:01:54] [DEBUG ] [viseron.camera.stream.foyer] - Stream information from FFprobe: Width: 704 Height: 576 FPS: 20.0 Video Codec: h264 Audio Codec: None
[2021-06-08 11:56:21] [INFO ] [viseron ] - ------------------------------------------- [2021-06-08 11:56:21] [INFO ] [viseron ] - Initializing... [2021-06-08 11:56:21] [DEBUG ] [viseron.watchdog ] - Starting scheduler [2021-06-08 11:56:21] [DEBUG ] [viseron ] - Starting cleanup scheduler [2021-06-08 11:56:21] [DEBUG ] [viseron ] - Running initial cleanup [2021-06-08 11:56:21] [DEBUG ] [viseron.cleanup ] - Running cleanup [2021-06-08 11:56:21] [INFO ] [viseron.mqtt ] - Initializing MQTT connection [2021-06-08 11:56:21] [DEBUG ] [viseron.detector ] - Initializing object detector darknet [2021-06-08 11:56:23] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 2 times [2021-06-08 11:56:24] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f352e4640> [2021-06-08 11:56:24] [DEBUG ] [viseron.detector ] - Object detector initialized [2021-06-08 11:56:24] [INFO ] [viseron ] - Initializing NVR threads [2021-06-08 11:56:24] [DEBUG ] [viseron.nvr.entrance ] - Initializing NVR thread [2021-06-08 11:56:24] [DEBUG ] [viseron.camera.entrance ] - Initializing camera Entrance [2021-06-08 11:56:24] [DEBUG ] [viseron.camera.stream.entrance] - Getting stream information for rtsp://:@192.168.3.82:8554/unicast [2021-06-08 11:56:29] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 3 times [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.stream.entrance] - Stream information from FFprobe: Width: 1920 Height: 1080 FPS: 25.0 Video Codec: h264 Audio Codec: None [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.entrance ] - Resolution: 1920x1080 @ 25.0 FPS [2021-06-08 11:56:30] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/object, <queue.Queue object at 0x7f35b13430> [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.entrance ] - Starting decoder thread [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.entrance ] - Running decoder entrance.object_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.entrance ] - Camera Entrance initialized [2021-06-08 11:56:30] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/object, <queue.Queue object at 0x7f352e44c0> [2021-06-08 11:56:30] [DEBUG ] [viseron.motion.entrance ] - Initializing motion detector [2021-06-08 11:56:30] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/motion, <queue.Queue object at 0x7f3403e340> [2021-06-08 11:56:30] [DEBUG ] [viseron.motion.entrance ] - Starting decoder thread [2021-06-08 11:56:30] [DEBUG ] [viseron.motion.entrance ] - Running decoder entrance.motion_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 11:56:30] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/scan/motion, <queue.Queue object at 0x7f352f2eb0> [2021-06-08 11:56:30] [DEBUG ] [viseron.motion.entrance ] - Motion detector initialized [2021-06-08 11:56:30] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/motion, <queue.Queue object at 0x7f352f2df0> [2021-06-08 11:56:30] [DEBUG ] [viseron.nvr.entrance ] - Starting camera [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.entrance ] - Starting capture thread [2021-06-08 11:56:30] [DEBUG ] [viseron.recorder.entrance] - Initializing ffmpeg recorder [2021-06-08 11:56:30] [DEBUG ] [viseron.camera.stream.entrance] - FFMPEG decoder command: entrance -hide_banner -loglevel error -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://:@192.168.3.82:8554/unicast -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy /segments/Entrance/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1 [2021-06-08 11:56:30] [DEBUG ] [viseron.recorder.entrance] - Creating folder /segments/Entrance [2021-06-08 11:56:30] [DEBUG ] [viseron.nvr.entrance ] - Waiting for first frame [2021-06-08 11:56:30] [DEBUG ] [viseron.nvr.entrance ] - NVR thread initialized [2021-06-08 11:56:30] [INFO ] [viseron ] - Initialization complete [2021-06-08 11:56:31] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 11:56:33] [ERROR ] [viseron.camera.stream.entrance] - Failed to query video capabilities: Inappropriate ioctl for device [2021-06-08 11:56:33] [ERROR ] [viseron.camera.stream.entrance] - libv4l2: error getting capabilities: Inappropriate ioctl for device [2021-06-08 11:56:33] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 11:56:33] [ERROR ] [viseron.camera.entrance ] - FFmpeg process has exited [2021-06-08 11:56:37] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 2 times [2021-06-08 11:56:38] [ERROR ] [viseron.camera.entrance ] - Restarting frame pipe [2021-06-08 11:56:38] [DEBUG ] [viseron.camera.stream.entrance] - Performing a sanity check on the ffmpeg command [2021-06-08 11:56:39] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 11:56:41] [ERROR ] [viseron.camera.stream.entrance] - Error starting decoder command! Failed to query video capabilities: Inappropriate ioctl for device libv4l2: error getting capabilities: Inappropriate ioctl for device Retrying in 5 seconds [2021-06-08 11:56:47] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 4 times [2021-06-08 11:56:49] [ERROR ] [viseron.camera.stream.entrance] - Error starting decoder command! Failed to query video capabilities: Inappropriate ioctl for device libv4l2: error getting capabilities: Inappropriate ioctl for device Retrying in 5 seconds [2021-06-08 11:56:53] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 3 times
@eldadh can you enable FFmpeg debug logging? Add this to your camera config:
ffmpeg_loglevel: debug
[2021-06-08 12:13:30] [INFO ] [viseron ] - ------------------------------------------- [2021-06-08 12:13:30] [INFO ] [viseron ] - Initializing... [2021-06-08 12:13:30] [DEBUG ] [viseron.watchdog ] - Starting scheduler [2021-06-08 12:13:30] [DEBUG ] [viseron ] - Starting cleanup scheduler [2021-06-08 12:13:30] [DEBUG ] [viseron ] - Running initial cleanup [2021-06-08 12:13:30] [DEBUG ] [viseron.cleanup ] - Running cleanup [2021-06-08 12:13:30] [INFO ] [viseron.mqtt ] - Initializing MQTT connection [2021-06-08 12:13:30] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 12:13:30] [DEBUG ] [viseron.detector ] - Initializing object detector darknet [2021-06-08 12:13:31] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f4f1e0250> [2021-06-08 12:13:31] [DEBUG ] [viseron.detector ] - Object detector initialized [2021-06-08 12:13:31] [INFO ] [viseron ] - Initializing NVR threads [2021-06-08 12:13:31] [DEBUG ] [viseron.nvr.entrance ] - Initializing NVR thread [2021-06-08 12:13:31] [DEBUG ] [viseron.camera.entrance ] - Initializing camera Entrance [2021-06-08 12:13:31] [DEBUG ] [viseron.camera.stream.entrance] - Getting stream information for rtsp://:@192.168.3.82:8554/unicast [2021-06-08 12:13:34] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0, message repeated 2 times [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Stream information from FFprobe: Width: 1920 Height: 1080 FPS: 25.0 Video Codec: h264 Audio Codec: None [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.entrance ] - Resolution: 1920x1080 @ 25.0 FPS [2021-06-08 12:13:35] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/object, <queue.Queue object at 0x7f4f1d4880> [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.entrance ] - Starting decoder thread [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.entrance ] - Running decoder entrance.object_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.entrance ] - Camera Entrance initialized [2021-06-08 12:13:35] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/object, <queue.Queue object at 0x7f4f1e0d30> [2021-06-08 12:13:35] [DEBUG ] [viseron.motion.entrance ] - Initializing motion detector [2021-06-08 12:13:35] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/decode/motion, <queue.Queue object at 0x7f4c06deb0> [2021-06-08 12:13:35] [DEBUG ] [viseron.motion.entrance ] - Starting decoder thread [2021-06-08 12:13:35] [DEBUG ] [viseron.motion.entrance ] - Running decoder entrance.motion_detection at 1.0s interval, every 25.0 frame(s) [2021-06-08 12:13:35] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/scan/motion, <queue.Queue object at 0x7f4c06da60> [2021-06-08 12:13:35] [DEBUG ] [viseron.motion.entrance ] - Motion detector initialized [2021-06-08 12:13:35] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic entrance/frame/processed/motion, <queue.Queue object at 0x7f4c06d880> [2021-06-08 12:13:35] [DEBUG ] [viseron.nvr.entrance ] - Starting camera [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.entrance ] - Starting capture thread [2021-06-08 12:13:35] [DEBUG ] [viseron.recorder.entrance] - Initializing ffmpeg recorder [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - FFMPEG decoder command: entrance -hide_banner -loglevel debug -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts -use_wallclock_as_timestamps 1 -vsync 0 -stimeout 5000000 -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://:@192.168.3.82:8554/unicast -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy /segments/Entrance/%Y%m%d%H%M%S.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1 [2021-06-08 12:13:35] [DEBUG ] [viseron.recorder.entrance] - Creating folder /segments/Entrance [2021-06-08 12:13:35] [DEBUG ] [viseron.nvr.entrance ] - Waiting for first frame [2021-06-08 12:13:35] [DEBUG ] [viseron.nvr.entrance ] - NVR thread initialized [2021-06-08 12:13:35] [INFO ] [viseron ] - Initialization complete [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Splitting the commandline. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-hide_banner' ... matched as option 'hide_banner' (do not show program banner) with argument '1'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-avoid_negative_ts' ... matched as AVOption 'avoid_negative_ts' with argument 'make_zero'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-fflags' ... matched as AVOption 'fflags' with argument 'nobuffer'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-flags' ... matched as AVOption 'flags' with argument 'low_delay'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-strict' ...Routing option strict to both codec and muxer layer [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - matched as AVOption 'strict' with argument 'experimental'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-fflags' ... matched as AVOption 'fflags' with argument '+genpts'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-use_wallclock_as_timestamps' ... matched as AVOption 'use_wallclock_as_timestamps' with argument '1'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-vsync' ... matched as option 'vsync' (video sync method) with argument '0'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-stimeout' ... matched as AVOption 'stimeout' with argument '5000000'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264_nvmpi'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-rtsp_transport' ... matched as AVOption 'rtsp_transport' with argument 'tcp'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-i' ... matched as input url with argument 'rtsp://:@192.168.3.82:8554/unicast'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-f' ... matched as option 'f' (force format) with argument 'segment'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-segment_time' ... matched as AVOption 'segment_time' with argument '5'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-reset_timestamps' ... matched as AVOption 'reset_timestamps' with argument '1'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-strftime' ... matched as AVOption 'strftime' with argument '1'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'copy'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '/segments/Entrance/%Y%m%d%H%M%S.mp4' ... matched as output url. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-filter:v' ... matched as option 'filter' (set stream filtergraph) with argument 'fps=1'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-f' ... matched as option 'f' (force format) with argument 'rawvideo'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'nv12'. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Reading option 'pipe:1' ... matched as output url. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Finished splitting the commandline. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Parsing a group of options: global . [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Applying option hide_banner (do not show program banner) with argument 1. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Applying option loglevel (set logging level) with argument debug. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Applying option vsync (video sync method) with argument 0. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Successfully parsed a group of options. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Parsing a group of options: input url rtsp://:@192.168.3.82:8554/unicast. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Applying option c:v (codec name) with argument h264_nvmpi. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Successfully parsed a group of options. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Opening an input file: rtsp://:@192.168.3.82:8554/unicast. [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] No default whitelist set [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Original list of addresses: [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Address 192.168.3.82 port 8554 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Interleaved list of addresses: [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Address 192.168.3.82 port 8554 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Starting connection attempt to 192.168.3.82 port 8554 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [tcp @ 0x557e8f2f60] Successfully connected to 192.168.3.82 port 8554 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] SDP: [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - v=0 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - o=- 1621115070442031 1 IN IP4 192.168.3.82 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - s=LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - i=LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - t=0 0 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=tool:LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=type:broadcast [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=control:* [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=range:npt=0- [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=x-qt-text-nam:LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=x-qt-text-inf:LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - m=video 0 RTP/AVP 96 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - c=IN IP4 0.0.0.0 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - b=AS:168 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=rtpmap:96 H264/90000 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=fmtp:96 profile-level-id=4d4028;sprop-parameter-sets=Z01AKJ2oHgCJ+WEAAAMAAQAAAwAyhA==,aO48gA== [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=x-dimensions:1920,1080 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - a=control:track1 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - Failed to parse interval end specification '' [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] video codec set to: h264 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] RTP Profile IDC: 4d Profile IOP: 40 Level: 28 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] Extradata set to 0x557e8f4370 (size: 34) [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] setting jitter buffer size to 0 [2021-06-08 12:13:35] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] hello state=0 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - Failed to parse interval end specification '' [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 7(SPS), nal_ref_idc: 3 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 8(PPS), nal_ref_idc: 3 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 7(SPS), nal_ref_idc: 3 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 8(PPS), nal_ref_idc: 3 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] Format yuv420p chosen by get_format(). [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] Reinit context to 1920x1088, pix_fmt: yuv420p [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] Frame num gap 5 3 [2021-06-08 12:13:36] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Last message repeated 18 times [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 7(SPS), nal_ref_idc: 3 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 8(PPS), nal_ref_idc: 3 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 7(SPS), nal_ref_idc: 3 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 8(PPS), nal_ref_idc: 3 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 5(IDR), nal_ref_idc: 3 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264 @ 0x557e8f3460] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] All info found [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 9.750000 0.015298 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Last message repeated 1 times [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Last message repeated 1 times [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 10.000000 0.003346 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 10.083333 0.008698 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 10.166667 0.018717 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 19.750000 0.016283 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 19.833333 0.010649 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Last message repeated 1 times [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 20.000000 0.013384 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 40.000000 0.019512 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [rtsp @ 0x557e8f2570] rfps: 50.000000 0.018620 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Input #0, rtsp, from 'rtsp://:@192.168.3.82:8554/unicast': [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Metadata: [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - title : LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - comment : LIVE555 Streaming Media v2020.05.15 [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Duration: N/A, start: 1623154416.139233, bitrate: N/A [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Stream #0:0, 22, 1/90000: Video: h264, 1 reference frame, yuv420p(progressive, left), 1920x1080 (1920x1088), 0/1, 25 fps, 9.92 tbr, 90k tbn, 50 tbc [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Successfully opened the file. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Parsing a group of options: output url /segments/Entrance/%Y%m%d%H%M%S.mp4. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Applying option f (force format) with argument segment. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Applying option c:v (codec name) with argument copy. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Successfully parsed a group of options. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Opening an output file: /segments/Entrance/%Y%m%d%H%M%S.mp4. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Successfully opened the file. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Parsing a group of options: output url pipe:1. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Applying option filter:v (set stream filtergraph) with argument fps=1. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Applying option f (force format) with argument rawvideo. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Applying option pix_fmt (set pixel format) with argument nv12. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Successfully parsed a group of options. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Opening an output file: pipe:1. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [pipe @ 0x557e92fcb0] Setting default whitelist 'crypto,data' [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Successfully opened the file. [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - [h264_mp4toannexb @ 0x557e8f0c40] The input looks like it is Annex B already [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - Failed to query video capabilities: Inappropriate ioctl for device [2021-06-08 12:13:38] [DEBUG ] [viseron.camera.stream.entrance] - libv4l2: error getting capabilities: Inappropriate ioctl for device [2021-06-08 12:13:38] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0 [2021-06-08 12:13:38] [ERROR ] [viseron.camera.entrance ] - FFmpeg process has exited
Need to see a log to know whats going on, but if you are running with
codec: h264_nvmpi
you need to pull the image again and recreate the container.
Pulled the updated image, and included codec: h264_nvmpi
in both mainstream and substream fields.
cameras:
- name: Foyer
mqtt_name: viseron_foyer
host: 192.168.0.88
port: 554
username: XXXX
password: XXXX
path: /cam/realmonitor?channel=17@subtype=0
width: 1920
height: 1080
fps: 5
codec: h264_nvmpi
ffmpeg_loglevel: debug
motion_detection:
interval: 1
trigger_detector: false
object_detection:
interval: 1
labels:
- label: person
confidence: 0.9
substream:
port: 554
path: /cam/realmonitor?channel=17@subtype=1
fps: 3
width: 704
height: 576
codec: h264_nvmpi
Here's the docker logs
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 10-adduser: executing...
************************ UID/GID *************************
User uid: 0
User gid: 0
************************** Done **************************
[cont-init.d] 10-adduser: exited 0.
[cont-init.d] 20-gid-video-device: executing...
[cont-init.d] 20-gid-video-device: exited 0.
[cont-init.d] 30-edgetpu-permission: executing...
************** Setting EdgeTPU permissions ***************
Coral Vendor IDs:
"1a6e"
"18d1"
No EdgeTPU USB device was found
************************** Done **************************
[cont-init.d] 30-edgetpu-permission: exited 0.
[cont-init.d] 40-set-env-vars: executing...
****** Checking for hardware acceleration platforms ******
OpenCL cannot be used
VA-API cannot be used
CUDA cannot be used
*********************** Done *****************************
[cont-init.d] 40-set-env-vars: exited 0.
[cont-init.d] 50-check-if-rpi: executing...
********** Checking if we are running on an RPi **********
Not running on any supported RPi
*********************** Done *****************************
[cont-init.d] 50-check-if-rpi: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[2021-06-08 20:24:12] [INFO ] [viseron ] - -------------------------------------------
[2021-06-08 20:24:12] [INFO ] [viseron ] - Initializing...
[2021-06-08 20:24:12] [DEBUG ] [viseron.watchdog ] - Starting scheduler
[2021-06-08 20:24:12] [DEBUG ] [viseron ] - Starting cleanup scheduler
[2021-06-08 20:24:12] [DEBUG ] [viseron ] - Running initial cleanup
[2021-06-08 20:24:12] [DEBUG ] [viseron.cleanup ] - Running cleanup
[2021-06-08 20:24:12] [INFO ] [viseron.mqtt ] - Initializing MQTT connection
[2021-06-08 20:24:12] [DEBUG ] [viseron.mqtt ] - MQTT connected with returncode 0
[2021-06-08 20:24:12] [DEBUG ] [viseron.detector ] - Initializing object detector darknet
[2021-06-08 20:24:13] [DEBUG ] [viseron.data_stream ] - Subscribing to data topic */frame/scan/object, <queue.Queue object at 0x7f582041c0>
[2021-06-08 20:24:13] [DEBUG ] [viseron.detector ] - Object detector initialized
[2021-06-08 20:24:13] [INFO ] [viseron ] - Initializing NVR threads
[2021-06-08 20:24:13] [DEBUG ] [viseron.nvr.foyer ] - Initializing NVR thread
[2021-06-08 20:24:13] [DEBUG ] [viseron.camera.foyer ] - Initializing camera Foyer
Exception in thread setup.Foyer:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/threading.py", line 932, in _bootstrap_inner
self.run()
File "/src/viseron/__init__.py", line 144, in run
FFMPEGNVR(camera_config, self._detector)
File "/src/viseron/nvr.py", line 125, in __init__
self.camera = FFMPEGCamera(config, detector)
File "/src/viseron/camera/__init__.py", line 34, in __init__
self.initialize_camera(detector)
File "/src/viseron/camera/__init__.py", line 46, in initialize_camera
self.stream = Stream(
File "/src/viseron/camera/stream.py", line 58, in __init__
or not self.stream_config.audio_codec
AttributeError: 'Substream' object has no attribute 'audio_codec'
[2021-06-08 20:24:13] [INFO ] [viseron ] - Initialization complete
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] waiting for services.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.
@eldadh Okay there seems to be something wrong with the ffmpeg install that i dont know how to fix.
I need to take a step back and start over with some other base images. Building is really slow so it will probably take a few days
I have checked the info from my rtsp stream that is working and i have two main differences,my camera is yuvj420p with a resolution of 1280x720. I seem to remember that previous versions of the ffmpeg patches had problems working with some not so standard resolutions.
@eldadh is it possible for you to drop the resolution in the camera to check if it has any impact (like 1280x720) ?
And check with something like :
sudo docker run --privileged -it --rm --runtime=nvidia roflcoopter/jetson-nano-ffmpeg:4.4 ffmpeg -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://admin:***@192.168.1.2:554/Streaming/Channels/601/ -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy -an /tmp/garbage.mp4 -filter:v fps=1 -f rawvideo -pix_fmt nv12 pipe:1
Ahh interesting @l-maia! I didnt realize FFmpeg worked for you.
It could also be related to -pix_fmt nv12
actually.
@eldadh can you try this?
sudo docker run --privileged -it --rm --runtime=nvidia roflcoopter/jetson-nano-ffmpeg:4.4 ffmpeg -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://username:password@192.168.3.82:8554/unicast -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy -an /tmp/garbage.mp4 -filter:v fps=1 -f rawvideo pipe:1
Working but very low FPS
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested ffmpeg version 8d172d9 Copyright (c) 2000-2021 the FFmpeg developers built with gcc 7 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) configuration: --enable-nvmpi libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 Input #0, rtsp, from 'rtsp://:@192.168.3.80:8554/unicast': Metadata: title : LIVE555 Streaming Media v2020.05.15 comment : LIVE555 Streaming Media v2020.05.15 Duration: N/A, start: 2.260033, bitrate: N/A Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720, 25 fps, 10 tbr, 90k tbn, 50 tbc Opening in BLOCKING MODE NvMMLiteOpen : Block : BlockType = 261 NVMEDIA: Reading vendor.tegra.display-size : status: 6 NvMMLiteBlockCreate : Block : BlockType = 261 Output #0, segment, to '/tmp/garbage.mp4': Metadata: title : LIVE555 Streaming Media v2020.05.15 comment : LIVE555 Streaming Media v2020.05.15 encoder : Lavf58.76.100 Stream #0:0: Video: h264 (Main), yuv420p(progressive), 1280x720, q=2-31, 25 fps, 10 tbr, 12800 tbn, 25 tbc Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:0 -> #1:0 (h264 (h264_nvmpi) -> rawvideo (native)) Press [q] to stop, [?] for help Output #1, rawvideo, to 'pipe:1': Metadata: title : LIVE555 Streaming Media v2020.05.15 comment : LIVE555 Streaming Media v2020.05.15 encoder : Lavf58.76.100 Stream #1:0: Video: rawvideo (I420 / 0x30323449), yuv420p(progressive), 1280x720, q=2-31, 11059 kb/s, 1 fps, 1 tbn Metadata: encoder : Lavc58.134.100 rawvideo frame= 24 fps=1.9 q=-1.0 q=-0.0 size=N/A time=00:00:01.64 bitrate=N/A speed=0.133x
Yes it is capped at 1 FPS in the command, you can try this instead:
sudo docker run --privileged -it --rm --runtime=nvidia roflcoopter/jetson-nano-ffmpeg:4.4 ffmpeg -c:v h264_nvmpi -rtsp_transport tcp -i rtsp://username:password@192.168.3.82:8554/unicast -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy -an /tmp/garbage.mp4 -f rawvideo pipe:1
Working but very low FPS
remove fps=1 , sorry i left it there from the my tests.
i'm getting 23fps
Are there any plans to create a version for Nvidia Jetson Nano?