Lightweight NVR solution that avoids transcoding and does 24/7 recording without detection reddit / selfhosted ---------------------------------------------------------------------- fakuivan · 2023-11-20 16:39 I have a Pi3 and a 2TB purple drive that I want to use as an NVR, my main issue with most solutions is that they offer too much for my needs and what the pi can provide. Going beyond a raspberry pi 3 is not realistic, since right now I'm feeding it with 15W POE, tucked away on a difficult to find location in case someone breaks in. The most common solutions like frigate and shinobi do transcoding by default or have advanced image recognition features. I do not require such things as a 1 or 2 week recording window is enough and all cameras are wired to a dedicated switch so bandwith is not an issue. My only requirements beyound that are playback (again, with no transcoding) and maybe external events, live viewing I've already taken care of so it's not a requirement. One project I was able to find is [https://github.com/marcus-j- davies/nvr-js](https://github.com/marcus-j-davies/nvr-js), which is described by the author as a light weight version of shinobi, it's pretty much what I need but last commit was 2 years ago so I'm open to considering other options. Do you know of any projects that fit this description? Were you able to turn frigate, shinobi or any other NVR into a get-and-store, read- and-send programs, no transcoding? If so, would you mind sharing how you did it? ---------------------------------------------------------------------- blackbear85 · 2023-11-20 18:48 Maybe try moonfire nvr ---------------------------------------------------------------------- fakuivan · 2023-11-20 19:13 This seems like a great option! Thanks for sharing. ---------------------------------------------------------------------- ovizii · 2023-11-20 19:14 I'm wondering where you got this information from: The most common solutions like frigate and shinobi do transcoding by default or have advanced image recognition features. Apart from that,I have personally used these two before and am still using frigate. The point with transcoding is that you can turn it off for recording but you might need it depending on the method you'd like to use to watch the recordings. ---------------------------------------------------------------------- fakuivan · 2023-11-20 21:34 >I'm wondering where you got this information from: My point was that I cannot affort transcoding of any kind. Either if it's to write the stream to disk, to show a live preview or to do image recognition. Have you used these without any transcoding? Mind sharing links or configs? ---------------------------------------------------------------------- fakuivan · 2023-11-20 21:39 Also for some reason your comment gets upvoted instead of the actually useful one, and the post too. Did I do something wrong? It gives me the impression that this community isn't that fond of power restrictions. ---------------------------------------------------------------------- HTTP_404_NotFound · 2023-11-20 22:02 I am still a huge fan of Blue Iris. Yup. It has a price tag. But, in terms of NVR, there isn't another comparable option, for the amount of features it includes. And- its extremely flexible. If you don't want to transcode, it defaults to direct to disk encoding. If you slap in a GPU, or have intel quick sync, it is happy to use it. If you want object detection, codeproject.ai integrates flawlessly with it, and also works with either CPU/GPU algorithms, or can use a coral TPU. Normally- I recommend opensource projects- but, Blue Iris is rock solid. Its only real downside, is that it only runs on a windows box. But, there is a docker container which supposedly works for it too. ---------------------------------------------------------------------- HonestPrivacy · 2023-11-20 22:38 I'll see if I can find it, but I used to run ffmpeg on my nas to ingest the stream (no transcoding) and write it to a file. This was done by using a cronjob that runs hourly (I wanted a file for each hour). For storage, I ran a second cronjob to delete files older than 30 days or delete files until it got under my desired percentage (third cron job monitoring disk usage specific to videos) This stack overflow page seems similar to how I did it: https://stackoverflow.com/questions/43570679/ffmpeg-capture-rtsp- stream-to-hourly-file The main benefit was being accessible via smb and with ffmpeg being as big/important of a project it is, the solution wouldn't be too likely to break ---------------------------------------------------------------------- R0NAM1 · 2023-11-20 23:31 Right now not many self-hosted NVRS exist software wise that are very simple, people always want AI detection nonesense by default. I'd setup a docker container system that runs ffmpeg scripts to dump footage from certain RTSP streams to a disk, simple and effective. I would ask ([phind](https://phind.com)) to generate a good template script that you could use for this. ---------------------------------------------------------------------- ovizii · 2023-11-20 23:38 I'm inputting my camera streams into go2rtc which then proxies it to frigate but this isn't needed, it can go straight to frigate. Will have a look for configs tomorrow, already in bed now and on mobile. ---------------------------------------------------------------------- ovizii · 2023-11-20 23:39 Not sure why, maybe you're just unlucky and hit the nerve of some die- hard frigate fans, don't take it personal 😅 ---------------------------------------------------------------------- janstadt · 2023-11-20 23:54 Frigate can do this. Just turn on recording and turn off motion/object detection. Transcoding can also be disabled i believe but i dont know the ffmpeg settings for that. ---------------------------------------------------------------------- fakuivan · 2023-11-21 00:19 I have something similar to that actually, I made it in bash and it works fine for recording, it doesn't have any playback features though: [https://gist.github.com/fakuivan/b5f2bb82999cff772fcc546a4bdb cb26](https://gist.github.com/fakuivan/b5f2bb82999cff772fcc546a4bdbcb2 6) . It uses the copy codec to avoid transcoding. ---------------------------------------------------------------------- St0lz · 2023-11-21 05:26 For 2 years I did exactly that with my Orange Pi (clone of Raspberry pi ) using [Motion](https://motion-project.github.io/). The config option you are looking for is `movie_passthrough on`, which will store the video as the camera sends it (no encoding). ---------------------------------------------------------------------- ovizii · 2023-11-21 10:46 As far as I can see, Frigate doesn't transcode anything, the only time the codec is important is when it decodes the image for analysis. If you don't enable detection it should not decode/transcode anything. As far as I understand recording simply passes the stream to ffmpeg to break it into segments (and re-merge segments later if required), but doesn't transcode it. When you alter want to watch the recordings, its up to you how and with which tool you access it and whether your video player/browser/whatever can read the recorded format/codec. ---------------------------------------------------------------------- oversyst3m · 2023-11-21 11:42 \+1 to moonfire, working fine about 2 years ---------------------------------------------------------------------- HonestPrivacy · 2023-11-25 19:39 That's definitely a useful script, and for playback I generally used ms smb (windows file share) to playback. But if you needed something a little more accessible, you could use nginx with a custom directory index (there are a lot of css styling options available) and optimize it for video streaming. It would still require browser support for the file type but usually that isn't an issue, and if it wasn't for some reason, you should be able to open it in vlc (which opens just about anything). For authentication, you could use http basic auth to keep it simple, or you could use something like authelia to provide more flexibility