!QhvgabMQzwEQeWehhZ:lossy.network

NixOS Home Automation

522 Members
Declarative Home Automation and other Sidequests | https://wiki.nixos.org/wiki/Home_Assistant136 Servers

Load older messages


SenderMessageTime
16 Oct 2024
@mackeveli:matrix.orgMackeveli It's likely dying because about 4GB of my Pi's RAM is used at any given point from the services I'm running on it. I'm gonna kill some non-essential services and see if it'll build then. Tbh I've been meaning to buy another Pi anyways, so this is a good excuse, unless y'all know of other ARM boards that work well with NixOS. 15:15:40
@k900:0upti.meK900Please don't buy RPis15:17:05
@k900:0upti.meK900Especially if you want a Pi515:17:13
@k900:0upti.meK900Just get anything Rockchip or Meson or Allwinner and it'll be miles better15:17:24
@hexa:lossy.network@hexa:lossy.networkthat or a low power x86 board15:21:12
@mackeveli:matrix.orgMackeveli
In reply to @k900:0upti.me
Just get anything Rockchip or Meson or Allwinner and it'll be miles better
Gotcha, I'll look into some SBCs with those SoCs
15:53:33
@mackeveli:matrix.orgMackeveli
In reply to @hexa:lossy.network
that or a low power x86 board
I've never done research on low-power x86 boards since most people's recommendations are ARM boards. Do you know of any particularly good low power x86 boards?
15:55:19
@hexa:lossy.network@hexa:lossy.networknothing conrete16:00:38
@hexa:lossy.network@hexa:lossy.networkbut there are n100 cores, or pentium cores16:00:48
@hexa:lossy.network@hexa:lossy.networkand people have been putting them onto the sbc form factor16:00:58
@hexa:lossy.network@hexa:lossy.networkand ideally they have a better bring-up and hardware support story16:01:10
@mattleon:matrix.orgmattleon
In reply to @mackeveli:matrix.org
Gotcha, I'll look into some SBCs with those SoCs
I've been happy with the orangepi5 (and the 5b, I have both). The 5 supports NVMe, which is miles ahead of SD card. I run frigate on the NPU with hardware decoding and encoding of the video streams, which allows me to run object detection with ~0% cpu usage.
16:02:09
@k900:0upti.meK900Note that neither the NPU nor the video stuff works well on mainline yet16:02:34
@k900:0upti.meK900So you will have to deal with vendor kernel nonsense, at least for the time being16:02:47
@mattleon:matrix.orgmattleonVendor kernels are pretty annoying to work with, but the orangepi5 can compile the joshua-riek kernels in about 25 minutes, so it's not too bad.16:03:27
@mattleon:matrix.orgmattleonThe rk3588 was faster in several real world situations than my laptop with an i7-8565U at 1/8th the power draw at peak, which was mindboggling to me. Storage is quite a bit slower due to older (and fewer) PCIe lanes to the NVMe than on modern x8616:06:06
@hexa:lossy.network@hexa:lossy.networksus 😄 16:08:25
@hexa:lossy.network@hexa:lossy.networkbut yeah, laptop cores are often potatoes16:08:35
@mattleon:matrix.orgmattleon
In reply to @hexa:lossy.network
but yeah, laptop cores are often potatoes
It was fanless, so it throttled down to < 2Ghz after 2 minutes of load
16:19:18
@mackeveli:matrix.orgMackeveli What I'll likely do is have one board for services that require constant uptime bc my household will use them, like Jellyfin, HASS, and Immich (no ML stuff), then save the other board for less important services that I'll mainly be using. If an Orange Pi 16GB can handle those 3 services (very light usage of Jellyfin) and can run NixOS fairly easily, then I may go with it. mattleon Have you got an example NixOS configuration for your Orange Pi? 16:20:27
@k900:0upti.meK900It can handle that fine, as long as you don't want hardware encoding for Jellyfin16:21:49
@mattleon:matrix.orgmattleon
In reply to @mackeveli:matrix.org
What I'll likely do is have one board for services that require constant uptime bc my household will use them, like Jellyfin, HASS, and Immich (no ML stuff), then save the other board for less important services that I'll mainly be using. If an Orange Pi 16GB can handle those 3 services (very light usage of Jellyfin) and can run NixOS fairly easily, then I may go with it. mattleon Have you got an example NixOS configuration for your Orange Pi?
This flake is a good starting point, my config is forked from an older version and switched over to the joshua-riek kernel: github.com/ryan4yin/nixos-rk3588
The joshua-riek kernel should support hardware encoding and decoding, though it's a good idea to have someone with an rk3588 board check before you buy (if you give me a source and dest format / ffmpeg line you want to use, happy to give it a shot)
16:28:48
@mackeveli:matrix.orgMackeveli
In reply to @mattleon:matrix.org
This flake is a good starting point, my config is forked from an older version and switched over to the joshua-riek kernel: github.com/ryan4yin/nixos-rk3588
The joshua-riek kernel should support hardware encoding and decoding, though it's a good idea to have someone with an rk3588 board check before you buy (if you give me a source and dest format / ffmpeg line you want to use, happy to give it a shot)
Thanks, I'll take a look at that flake and do some more research on the Orange Pi to see if I'll pick it up. As for encoding/decoding, I'm not super familiar with the process as I don't tend to use Jellyfin very often or do video editing, but either H264 or AV1 encoding MP4 files seems like a solid start ffmpeg -i input. mp4 -c:v libaom-av1 -strict -2 output.mp4 / ffmpeg -i input.mp4 -c:v libx264 -tune film output.mp4
16:57:09
@k900:0upti.meK900Those are both CPU encoding16:57:27
@adam:robins.wtf@adam:robins.wtfrpi considered harmful around here :)17:44:22
@mattleon:matrix.orgmattleon

I spun up a jellyfin container on my orange pi 5 on nixos, and it logged this:

Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 6.0.1
Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_rkmpp", "h264", "h264_rkmpp", "hevc", "hevc_rkmpp", "mpeg1_rkmpp", "mpeg2video", "mpeg2_rkmpp", "mpeg4", "mpeg4_rkmpp", "msmpeg4", "vp8", "vp8_rkmpp", "libvpx", "vp9", "vp9_rkmpp", "libvpx-vp9", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libsvtav1", "libx264", "h264_v4l2m2m", "h264_rkmpp", "libx265", "hevc_rkmpp", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["overlay_opencl", "overlay_rkrga", "scale_opencl", "scale_rkrga", "tonemap_opencl", "vpp_rkrga", "zscale", "alphasrc"]
Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [WRN] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: scale_cuda with option Output format (default "same") is not available
Oct 16 19:03:17 orangutan jellyfin[1380]: [23:03:17] [WRN] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: tonemap_cuda with option GPU accelerated HDR to SDR tonemapping is not available
Oct 16 19:03:18 orangutan jellyfin[1380]: [23:03:18] [WRN] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: overlay_vaapi with option Action to take when encountering EOF from secondary input is not available
Oct 16 19:03:18 orangutan jellyfin[1380]: [23:03:18] [WRN] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Filter: overlay_vulkan with option Action to take when encountering EOF from secondary input is not available
Oct 16 19:03:18 orangutan jellyfin[1380]: [23:03:18] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["drm", "opencl", "rkmpp"]
Oct 16 19:03:18 orangutan jellyfin[1380]: [23:03:18] [INF] [4] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
Oct 16 19:03:18 orangutan jellyfin[1380]: [23:03:18] [INF] [4] Emby.Server.Implementations.ApplicationHost: ServerId: 75f42f46993e44689bc26fe7756194d4

Notably, it does appear to support hardware av1, h264, h265, vp8, and vp9 decoding, and h264 and h265 encoding (the "_rkmpp" suffix denotes rockchip hw acceleration)

23:07:18
@hexa:lossy.network@hexa:lossy.networkhm23:14:22
@hexa:lossy.network@hexa:lossy.network
 MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 6.0.1
 MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_cuvid", "h264", "h264_cuvid", "hevc", "hevc_cuvid", "mpeg2video", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp9", "libvpx-vp9", "vp9_cuvid", "aac", "ac3", "dca", "flac", "mp3", "truehd"]
 MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["av1_nvenc", "av1_vaapi", "libx264", "h264_nvenc", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_nvenc", "hevc_vaapi", "mjpeg_vaapi", "mpeg4", "msmpeg4", "libvpx", "libvpx-vp9", "aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
 MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["deinterlace_vaapi", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_vaapi", "scale_vulkan", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "yadif_cuda", "zscale", "alphasrc"]
 MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["vdpau", "cuda", "vaapi", "drm", "opencl", "vulkan"]
23:16:03
@hexa:lossy.network@hexa:lossy.network with just services.jellyfin.enable on the rock 5b with mainline 6.11.3 23:16:18
@mattleon:matrix.orgmattleonI believe the rkmpp requires the BSP kernel23:16:45

Show newer messages


Back to Room ListRoom Version: 6