roflcoopter / viseron

Self-hosted, local only NVR and AI Computer Vision software. With features such as object detection, motion detection, face recognition and more, it gives you the power to keep an eye on your home, office or any other place you want to monitor.
MIT License
1.51k stars 155 forks source link

hevc_cuvid is not supported #687

Open recklessop opened 7 months ago

recklessop commented 7 months ago

Hello,

I am trying to add the high-resolution stream from my camera to the system. The low-resolution stream works fine.

The high res looks like it uses h.265, and I'm wondering what I need to do to fix the issue.

Relevant log messages: viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.stream.camera_2] - [hevc_cuvid @ 0x55698618fcc0] Codec hevc_cuvid is not supported. viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.stream.camera_2] - Error while opening decoder for input stream #0:0 : Invalid argument viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.camera.camera_2] - Did not receive a frame

Larger log snippet: viseron | [2023-11-16 13:15:27] [DEBUG ] [viseron.components.ffmpeg.stream.camera_2] - Getting stream information for rtsp://:@192.168.0.233:554/live/ch0 viseron | [2023-11-16 13:15:27] [DEBUG ] [viseron.components.ffmpeg.stream.camera_2] - FFprobe command: ffprobe -hide_banner -loglevel error -print_format json -show_error -show_entries stream=codec_type,codec_name,width,height,avg_frame_rate rtsp://:@192.168.0.233:554/live/ch0 viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.stream.camera_2] - Stream information from FFprobe: Width: 2304 Height: 1296 FPS: 15 Video Codec: hevc Audio Codec: aac viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.recorder.camera_2] - Running cleanup viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.recorder.camera_2] - Initializing recorder viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.camera.camera_2] - Initializing camera yard viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.camera.camera_2] - Resolution: 2304x1296 @ 15 FPS viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.camera.camera_2] - Camera yard initialized viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain camera for component ffmpeg with identifier camera_2 took 2.2 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain motion_detector for component mog2 with identifier camera_2 took 0.0 seconds viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.nvr.nvr.camera_2] - Initializing NVR for camera yard viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components.nvr.nvr.camera_2] - Object detector is disabled viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.nvr.nvr.camera_2] - Waiting for first frame viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.camera.camera_2] - Starting capture thread viseron | [2023-11-16 13:15:30] [DEBUG ] [viseron.components.ffmpeg.stream.camera_2] - FFmpeg decoder command: ffmpeg_camera_2 -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 -timeout 5000000 -c:v hevc_cuvid -rtsp_transport tcp -i rtsp://:@192.168.0.233:554/live/ch0 -f segment -segment_time 5 -reset_timestamps 1 -strftime 1 -c:v copy -c:a copy /segments/camera_2/%Y%m%d%H%M%S.mp4 -f rawvideo -pix_fmt nv12 pipe:1 viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components.nvr.nvr.camera_2] - NVR for camera yard initialized viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain nvr for component nvr with identifier camera_2 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain camera for component ffmpeg with identifier camera_1 took 2.5 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain license_plate_recognition for component codeprojectai with identifier camera_1 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain motion_detector for component mog2 with identifier camera_1 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain face_recognition for component codeprojectai with identifier camera_1 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain object_detector for component codeprojectai with identifier camera_1 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components.nvr.nvr.camera_1] - NVR for camera yard initialized viseron | [2023-11-16 13:15:30] [INFO ] [viseron.components] - Setup of domain nvr for component nvr with identifier camera_1 took 0.0 seconds viseron | [2023-11-16 13:15:30] [INFO ] [viseron.core] - Viseron initialized in 5.1 seconds viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.stream.camera_2] - [hevc_cuvid @ 0x55698618fcc0] Codec hevc_cuvid is not supported. viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.stream.camera_2] - Error while opening decoder for input stream #0:0 : Invalid argument viseron | [2023-11-16 13:15:32] [ERROR ] [viseron.components.ffmpeg.camera.camera_2] - Did not receive a frame

roflcoopter commented 7 months ago

So you have an NVIDIA GPU?

Could you show me your config?

bsyomov commented 6 months ago

If you use somthing like nvidia p106-100, like me, it has no video encoder/decoder blocks at all, so there is no hardware video transcoding acceleration. I use integrated graphics card via vaapi for encoding/decoding insted.

If you use old nvidia card, before 10xx series, it just has no hardware h265 decoding support. You can check https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new