For several years I had a WD MyCloud sitting under my telly serving content to Kodi and PCs via a Samba share. I had low demands and it did just what I wanted. It even had a USB3 port on the back so I could backup the single NAS disk to a portable disk.
Eventually boredom set in and I wondered if I could do anything with an old MXQ box sitting in my cupboard for the past 4 years. If you don't know what a MXQ box is, it's a small Android computer that was popular for running Kodi and dabbling in IPTV.
In 2016 I paid the sum of £22.90. Now you can pick them up for around £10 on eBay, or even splash out on a MXQ Pro 4K for a costly £20. You'll also need a SD card (I've been using a Micro SD with an adaptor) and a portable hard disk if you want to clone my setup...
First you want to get Armbian running on the MXQ. There's a great video at http://mxqproject.com/tutorial-s805-how-to-run-armbian-linux-on-mxq-s805-box/. By the end of it you'll have a server similar to a Raspberry Pi.
There's no particular order what to install next. Besides having a fan-less, low power server on my network, I couldn't figure out what to do with it.
Then I found some software called Pi-Hole, which is a DNS sink hole. You leave it running on your home network and configure your devices to point at the MXQ box for DNS lookups. Any dodgy DNS lookups are binned. It can also help with stopping adverts. The software is really well written and the dashboard is ace. I just followed a guide for installing on a Raspberry Pi @ https://www.raspberrypi.org/blog/pi-hole-raspberry-pi/.
Then I toyed with the idea of installing OpenVPN. The reason for not using it was that my Internet Provider gives me a dynamic IP address so it can occasionally change and I won't know where my home network is. Dynamic DNS services exist so you can your register your dynamic IP address to a DNS name. While several of these services were free in the past, I could only find No-IP that meant I needed to confirm my details every month. No thanks.
Fortunately https://ydns.io/ comes to the rescue and gives you a DNS entry with a dynamic IP for free. Better still there's a script that runs on the MXQ box that runs via a scheduled job that updates the IP address if it changes. You can find the script at https://github.com/ydns/bash-updater.
This opened the door for OpenVPN so I followed the guide at https://www.pcmag.com/how-to/how-to-create-a-vpn-server-with-raspberry-pi. Now I can access my home network where ever I am in the world. While a little concerned about security, I've read that OpenVPN is pretty secure. Don't forget to open the port on the router to allow incoming connections.
I also installed a Samba server on MXQ. However Kodi running on my Bravia TV couldn't access video files larger than 2GB. So I switch to vsftpd which was slightly better as it didn't have the limit. But it felt old fashioned using FTP for streaming videos.
Years ago I learnt about Plex, but got put off with the cost. My experience is soon as I spend money on software I find that it doesn't meet my requirements (just minor issues). More recently I found out about Emby, but that was also a purchase. Then I heard about Jellyfin which is a freebie fork of Emby. These pieces of software usually sit on a server in the home and you can access content via different devices in and out of the home.
Similar to other software above, I followed a Raspberry Pi guide from https://www.electromaker.io/tutorial/blog/how-to-install-jellyfin-on-the-raspberry-pi. The Android version was installed on my phone, tablet and Bravia TV. I created libraries for my 20+ years of photos, 100s of films and TV shows, music videos and music.
My music didn't scan properly at first. After reviewing the logs, it seems Jellyfin uses a couple of pieces of software - ffprobe (to examine media content) and ffmpeg (to convert media content). These versions supplied with the Jellyfin distribution didn't work on my MXQ. So I entered "apt install ffmpeg" which installed versions that did work. Then I just needed to update the paths of these utilities in the Jellyfin interface.
I also dabbled in IPTV. This usually a paid service and gives you access to lots of live TV stations. Jellyfin has the capability of setting scheduled recordings - either as a one off, or a series. I needed to supply Jellyfin with a couple of URLs, one ending with a m3u for the TV streams and another XML file for the EPG. I didn't want to pay for testing these out, so I found out about a free service called Pluto. You can get these two URLs from https://forums.whirlpool.net.au/archive/9nk7ly73.
One problem I experienced with IPTV streaming, is that while my phone and tablet could view the content, the Bravia TV kept freezing. Turns out the Jellyfin client on the TV couldn't handle the TV streams and Jellyfin was transcoding the video. The CPU in the MXQ box couldn't cope. I managed to get round this by...
- Installing VLC on the TV.
- Configuring the Jellyfin Android app to use VLC.
- Switching off transcoding on the Jellyfin server.
I've been using Trakt for several years. Once the Trakt plugin was configured, I synced it with my Jellyfin library so I know what TV shows I've already seen.
Jellyfin and OpenVPN combined are great. I wouldn't recommend opening a port on the router for Jellyfin, just use OpenVPN to access the home network first.
That's quite a bit of typing, hope it's useful for someone if they want a mini project to do during the COVID lockdown, or even if they want a cheap (but not nasty) home media server. I may of hit a few issues along the line which I resolved and forgot about - if you have any issues add a comment below and I'll try to help.
No comments:
Post a Comment