!QhvgabMQzwEQeWehhZ:lossy.network

NixOS Home Automation

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

Load older messages


SenderMessageTime
16 Oct 2024
@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
@mattleon:matrix.orgmattleon Though I curiously see nvenc listed there, do you have a gpu attached to your rock 5b? 23:17:08
@hexa:lossy.network@hexa:lossy.networkvaapi should be accelerated, no?23:17:11
@hexa:lossy.network@hexa:lossy.networkno23:17:14
@hexa:lossy.network@hexa:lossy.networkjust the panthor gpu enabled23:17:21
@hexa:lossy.network@hexa:lossy.network

[ 12.685043] hantro-vpu fdc70000.video-codec: registered rockchip,rk3588-av1-vpu-dec as /dev/video0

23:17:29
@hexa:lossy.network@hexa:lossy.networkand av1 decoder registered23:17:36
@mattleon:matrix.orgmattleon
In reply to @hexa:lossy.network
with just services.jellyfin.enable on the rock 5b with mainline 6.11.3
I ran this with virtualisation.oci-containers.containers.jellyfin. Let me try again with services.jellyfin.enable
23:18:29
@hexa:lossy.network@hexa:lossy.networkI don't expect any change fwiw23:19:20
@hexa:lossy.network@hexa:lossy.networkyou run a custom kernel, so it probably has patches on top to enable this23:19:36
@hexa:lossy.network@hexa:lossy.networksame as with frigate, the npu is not mainline supported yet23:20:08
@hexa:lossy.network@hexa:lossy.networkneither in the linux devicetree nor in mesa23:20:23
@mattleon:matrix.orgmattleonI'm hoping for NPU support soon, have you seen https://blog.tomeuvizoso.net/2024/06/rockchip-npu-update-4-kernel-driver-for.html23:21:15
@mattleon:matrix.orgmattleon
In reply to @hexa:lossy.network
hm

I get the same when I use services.jellyfin.enable:

journalctl -xeu jellyfin | grep -A 5 "Found ffmpeg"
Oct 16 19:20:28 orangutan jellyfin[12334]: [19:20:28] [INF] [6] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 6.0.1
Oct 16 19:20:28 orangutan jellyfin[12334]: [19:20:28] [INF] [6] 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"]
Oct 16 19:20:28 orangutan jellyfin[12334]: [19:20:28] [INF] [6] 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"]
Oct 16 19:20:29 orangutan jellyfin[12334]: [19:20:29] [INF] [6] 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"]
Oct 16 19:20:30 orangutan jellyfin[12334]: [19:20:30] [INF] [6] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["vdpau", "cuda", "vaapi", "drm", "opencl", "vulkan"]
Oct 16 19:20:31 orangutan jellyfin[12334]: [19:20:31] [INF] [4] Emby.Server.Implementations.ScheduledTasks.TaskManager: Clean up collections and playlists Completed after 0 minute(s) and 0 seconds
23:22:14
@hexa:lossy.network@hexa:lossy.networkit certainly has no cuda capability 😄 23:22:58
@mattleon:matrix.orgmattleon

I can confirm hardware encoding appears to be working on the rk3588 with joshua-riek's 6.1 bsp kernel

Oct 16 19:31:16 orangutan jellyfin[13855]: [23:31:16] [INF] [30] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -ss 00:03:12.000 -noaccurate_seek -init_hw_device rkmpp=rk -hwaccel rkmpp -hwaccel_output_format drm_prime -afbc rga -noautorotate -i file:"/media/media/bbb_sunflower_1080p_60fps_normal.mp4" -noautoscale -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 hevc_rkmpp -tag:v:0 hvc1 -b:v 1116000 -maxrate 1116000 -bufsize 2232000 -profile:v:0 main -level 150 -g:v:0 180 -keyint_min:v:0 180 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_rkrga=w=720:h=404:format=nv12:afbc=1" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename "f7e1d02a5d90104b98e2077d78225449-1.mp4" -start_number 64 -hls_segment_filename "/cache/transcodes/f7e1d02a5d90104b98e2077d78225449%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/f7e1d02a5d90104b98e2077d78225449.m3u8"

with the oci container image

23:39:20
17 Oct 2024
@joerg:thalheim.ioMic92 changed their display name from Mic92 to Mic3000.06:51:17
@joerg:thalheim.ioMic92 changed their display name from Mic3000 to Mic3000 🌋.06:51:46
@joerg:thalheim.ioMic92 changed their display name from Mic3000 🌋 to Mic92.12:22:31
@jstsmthrgk:devlol.orgjstsmthrgk left the room.16:53:55
18 Oct 2024
@sammy:cherrykitten.dev@sammy:cherrykitten.dev left the room.08:39:16
19 Oct 2024
@jwillikers:matrix.orgjwillikers joined the room.12:06:42

Show newer messages


Back to Room ListRoom Version: 6