RasPi 4 w/ PoE

Hi there! I've been using the Channels for HDHomeRun app on my Apple TVs for quite some time (love it, great work Channels team). I recently started experimenting with Channels DVR on my Raspberry Pi 4 (4GB), but I'm currently running it as a stand-alone installation - the Pi is primarily running Homebridge, but running Channels DVR alongside it has been working flawlessly (locally).

I've been trying to test the Remote DVR feature, but noticed that the stand-alone installation on the Pi is limited to software transcoding. So... I'm now looking to install the official Channels DVR image on an external SSD, in order to take advantage of the Pi's hardware transcoding. Which leads me to this: My Pi is currently running over PoE, using the official RasPi PoE HAT. It currently has a regular USB flash drive (32GB) plugged into one of the USB 3.0 ports, being used as the DVR storage. I've had no power-related issues with it thus far, however, I fear that something like an SSD may require more power than the Pi can provide over PoE.

Looking at the available storage options, I was planning on getting this:
SanDisk 256GB Extreme PRO USB 3.2 Solid State Flash Drive

Since the form-factor would be the same as what's currently plugged into the Pi, I'm assuming the power consumption would be nearly identical. Does anyone have a similar setup? What sort of external storage do you have your Pi's Channels DVR running on?

Thanks!

2 Likes

To experiment, I have a Pi4 with the official POE HAT running the Channels Pi image. I did have to make a few small tweaks to the config.txt to change the default fan temps to be more to my liking. Also, it is running off of a 32GB flash drive like you without issue.

However, when I flesh out this experiment, the actual DVR storage will be on an external USB3 drive with its own power supply.

I think you may find it works surprisingly well.

Thanks for the reply! So, you're saying I should have the actual Channels DVR installation on the USB flash drive, and have the Pi booting from that, but have an additional drive for the DVR storage?

I have a 4TB WD MyCloud that was recently marked EOL- the cloud features no longer work, so it's essentially a local network storage device. Looking at the documentation, I should be able to point the server to that for the DVR storage. I think I can also attach the MyCloud drive directly to the Pi via a USB cable, while still having it connected to the network. The MyCloud drive is running on a dedicated power supply, so it would be ideal if I could get that working.

Otherwise, would there be a downside to using the same USB that the Pi boots from as the DVR storage? I was planning on getting that SSD Flash Drive I linked, but from what you've described, it does make more sense to have a separate device for storage.

No, that's not what I'm saying. I'm saying that is what I have done.

You can do this, but I would recommend against it. Local storage is always best.

Assuming your drive allows you use it as a straight external drive this will work, with caveats. However, it sounds like the drive has its own small flash storage to keeps its OS and stuff. If that is the case, I'm not certain you can use that drive with the Pi image. (Of course, if you boot and keep the Pi image on the 32GB flash drive, and the MyCloud drive allows you to use it as a regular external drive, you should be able to attach that to the Pi and use it for your recordings, keeping only the OS itself in the flash drive.)

For those using the Pi image, that is what I believe the majority do. In fact, you could probably count on one hand the number of users using the Pi image on a thumb drive, and a separate external drive just for recordings.

I feel it's all a balance. Separate drives may be more a hassle, but may offer better resiliency. Of course, the complete opposite could be true, too, in reality.

Awesome, I will keep all of this in mind! Have you used the Remote DVR feature at all to see how the Pi's hardware transcoding fares? I'd only be having one remote steam, so I'm not worried about that limitation.

No. My primary server is a 5th gen Core i3. However, its ethernet port is getting troublesome, so I'm investigating alternative low-power solution that I already on shelves and in bins.

Why not drop a cheap NIC into a free PCIe slot or even use a USB ethernet? You don't need to replace the system

I'm curious how long a PI 4 takes to comskip an hour recording.

The dying system is a 6+ year old Gigabyte Brix. There are no PCI slots, and as it also monitors my UPS, hosts my Zwave dongle, and has a second USB drive for some additional services, I don't have USB ports to spare.

Depends on if it is OTA or TVE. And how many threads you have it set to.

There is a thread while back where many people posted their times, I have mine overclocked to get a bit better performance.

A follow-up: Is it possible to install Homebridge alongside Channels DVR via SSH, using the official Channels for Pi image? Other than being fine-tuned for Channels, it's still running Raspberry Pi OS, correct?

No it's not built on Raspberry Pi OS

Docker is available if you want to add software, but that's the only way to do so.

Oh! That's good to know. I'll be tinkering with it tonight & will have to look into the Docker option. Thanks!

@cbass I’ve been running on an rpi4 w 2gb and a Poe hat since getting started with with my channels journey and not had any issues. I’m a bit boring though followed their guide and since the setup was so easy I haven’t ventured into any attempts to customize it.

1 Like

It's been a few months now, and I wanted to loop back to post the final result:

A PoE-powered Raspberry Pi 4 w/ 4GB RAM, running the custom Channels DVR Server Raspi image on a SanDisk 256GB Extreme PRO USB 3.2 Solid State Flash Drive. For DVR storage, I have the server mapping to a share on a WD My Cloud 4TB NAS drive (its cloud features have been deprecated, but it still works as a local-network drive without a problem).

I can honestly say, after about 4 months of use, the Channels DVR Server has not let me (or my dad) down. The only time we ever run into an issue is when the power goes out (which rarely occurs) -- the server comes back online, but isn't able to "see" the NAS drive. A quick reboot of the Pi resolves this. I was skeptical about using a NAS drive as the DVR storage rather than one connected directly to the server, but this has been working out just fine.

The actual Pi/Sever is located at my parents' house, about 50 miles from where I live. I have the Channels app on my Apple TV connected to the server (at the remote location), so I've been able to test/utilize the Remote DVR feature. The host connection speed is 1000Mbps Down / 50Mbps Up, mine (at the remote location) is 1000Mbps Down / 1000Mbps Up. Despite the upload bottleneck on the host side, remote streaming works perfectly; it will only buffer occasionally, but will typically pre-buffer enough content without having to do so again during the same broadcast.

Down the road, the setup will likely get upgraded to a Mac mini, but for now, this is :ok_hand:

And... it was fun getting this built!

A big thanks to the Channels dev team! Keep up the great work on the app!

4 Likes

Your PI is booting up faster than your NAS. If you have shell access, you could write a script to wait for the NAS to boot and remount the share. running the script at boot from crontab.

1 Like

You're definitely correct about this.

Unfortunately, though, I don't think it's possible to utilize crontab on the custom Channels DVR Server image. Perhaps one of the devs could correct me if I'm wrong. The NAS mapping is configured using the web UI. Maybe in a future build, a "wait for network at boot" option could be implemented?

I forgot to mention in my previous post; I also have Homebridge running in a Docker container & keep it updated using Watchtower: docker run -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once