What's a Media Server ?
At it's most basic, a Media server is just a music and video file storage system that can be accessed across a network e.g. as a 'shared folder'
What makes things more complicated is that many 'players' (such as your 'smart' TV, PVR etc) are too 'dumb' to understand Microsoft networking protocols. Further, unlike normal file transfers, when playing music or video it's vital that the data is 'streamed' without interruption = and Microsoft file transfers are not known for their 'smoothness' :-) This means you often have to install some 'clever' software on the 'server' in order to deliver the media files to the player ('client') without interruption. Further, most 'plater' software includes the GUI - in otherwords you select the track/movie to play at the TV etc. and that means supporting 'pause' and other functions (like 'fast forward') that a simple file transfer system can not cope with.
There are 3 general approaches - file sharing (essentially just a basic file/folder 'share' like Windwos 'Map Drive'), the DLNA 'standard' (a very simple system that only shows 5 items at a time 'on screen', so leads to a very frustratingly slow 'key hole' user interface approach) and one of the huge variety of specialist Media Player (client/server) systems (from the most basic music player (such as MPD to the more complex media 'system' such as Apple TV)
Be aware that most 'players' (smart TV's and box's and 'sticks' plugged into your TV) have very limited 'native format' support. Whilst most (not all) faced with an 'incompatible' format will attempt to 'convert on the fly', this can lead to jitter and jumps in playback. The format problem is (as always) complicated by Digital Rights Management - the only 'free' video format is H264/H265 (.mp4) with AC3 auuio = EVERYTHING ELSE (including mpeg) REQUIRES a (paid for) Licence to play back. If your TV/stick vendor has paid for the licence, all well and good - if you are building your own player (eg based on the excellent HDMI output from the Pi Zero) it makes more sense to do any 'conversion' on a (much) more powerful computer. SOME 'Server' software incorporates 'on the fly' conversion, however agian this can result in playback jutter. I thus recommend you 'convert' all your existing movies into the 'Licence free' H264/5 + AC3 format now (and forget about the 'native format' issue). Does conversion make you a 'Video Pirate' ? Yes, of course it does (read your Licence == you are 'not permitted' to 'hold in any other form'). Of course if the 'source' of the Movie was a DVD/BD you paid for (or some other paid for source, including BBC Licence), then you became a 'Video Pirate' the moment you copied it onto your media server contravening the Copyright Licence attacked to the source. If you want to avoid becoming a 'pirate', you must stick to the Torrents or other on-line download sources of material you never paid for. This is because viewing 'pirate' material is NOT an 'offense' of any sort, despite the lies of the Media Industry (who try to equate stealing a handbag to the copying (or 'theft' as they like to lie) of a Movie - the real copying 'equation' is, of course, to the taking of a photo of a painting - and (at least in 2017) looking at a photo of a handbag or photo of a painting is (not yet) and offence (although the Media Industry continues to lobby Governments across the world in an effort to make it an offense) If you never paid for the material, then the actual offence ('Breach of Copyright') was committed by the individual who copied the movie and placed it on-line, not the Internet company (who transmitted the material to you) and for sure not you or anyone else who views it - if you never paid for the movie, you can't be 'bound' by the Licence = so stick to material you never paid for and you will be OK. Yes - that's right - copy a DVD you paid for and the Media Industry tries to brand you a 'criminal' - view it from a Torrnet and they can't touch you ....
Converting your movies
There are many commercial 'converters' out there and whilst I don't deny they do a good job, MOST of them are built on Open Source components (such as FFmpeg). So DON'T be tempted into paying for something that's free.
WANING - MOST 'Free Trials' of commercial software not only impose an 'end date' (typically 30 days) but many also add 'watermarks' (or advertising garbage) in the center of the movie screen (see, for example, Pavtube Video Converter) or limit the output quality/running time. DON'T waste your time with a 'free trial', especially as most CAN'T BE FULLY UNINSTALLED (they leave behind hidden components designed to prevent you installing the Free Trial again (and getting another 30 days))
There are any number of real free Open Source 'video converters' available. As with all Open Source software, the programmers efforts have gone into delivering quality output and not wasted on imposing DRM and 'Licence control' (i.e. components designed to STOP you using the software) or clever/flashy GUI's etc.
The problem with Open Source is that the GUI is often the last thing they worry about - indeed some of the best converters are CLI (Command Line Interface) driven - which means that it can be harder to use than one of the 'clever' commercial packages
Choosing a Media Converter
As usual, I recommend you start by looking at Wikipedia.
You will find many on-line 'reviews' of 'free video converters' are written by those who have a commercial interest in 'promoting' one or more of the 'free' products listed. Most are anything but free = to some reviewers, 'free' means 'free trial' or even 'free download' (pay to use) = for sure what 'free' does NOT mean is Open Source. Further few (if any) of the writers have actually used any of the products on their own computers (instead they just 'copy and paste' screen shots from the product 'advertsing blurb' pages on the product vendors own website). You know they never tried it when the 'download link' directs you to a 'Buy It Now' page or to some virus ridden 'download repository' (or just 404's on you). If you do manage to find a 'live' download, you then discover the product fails to install, or launches with a 'run time error' / 'access violation' - or spends the next 30 miniutes downloading and installing unasked for Browser, Tool Bar, Search Engine, 'Forum'/'Live Chat' software or some other garbage Some even install 'ad-ware' (similar to a 'root kit') that delivers unwanted advertising spam in your face (sometimes even when you are NOT using the 'free' software).
One tip I have is to look for products that also come in a Linux version iu.e with a 'GPL Licence' - these are real Open Source (rather than some 'pay for' (shareware) or 'adware' etc.)
Beware that 'repositories' of software often 'wrap' the material in their own 'downloader'. You should avoid ALL such 'downloaders' = they are designed to install unwanted Ad-ware or other components (eg Browser / Search replacements). Indeed, the 'default' install of some Open Source packages (even from the developers own site) can include unwanted additional 'modules' that try to 'take over' parts of your system - for example by replacing your Browser or your default Search engine. So, when offered, ALWAYS choose 'custom install' and deselect the unwanted garbage (commercial packages don't come with a 'custom' option)
Unlike the bloated milti-Gb commercial packages, generally with Open Source, the smaller the better
Avidemux
Probably the best all-round Open Source choice, and at just under 22Mb (32 bit Windows) this is one of the more 'light weight' packages (although it does expand to about 100Mb on install)
If it has one drawback it's speed. The focus is on Video Edit functionality, not speedpf format conversion. This means a 'simple' edit (eg trim off the start/end) saved in 'copy' mode is very fast, HOWEVER you have to manually cut on a 'keyframe' (I-frame) at the start to avoid a second or two of playback corruption, otherwise you have to re-code the WHOLE movie. Apparently, in "Divx3" and "mpeg4" mode (I've no idea where these settings are = for sure I've never found them), use can use the 'smart copy mode' instead A simple re-coding (H264 to H264 (to process a non-I-frame 'cut') or mpeg (DVD) to H264) runs at about 3x 'real time' - so a 120 miniute Movie will take about 40 mins to process. Howevcer it does support 'batch conversion' (via a Queue system) so you can leave it running overnight. Add anything clever (suchas a Filter or two eg. logo mask, size change, sharpness) and it can slow to 3x real (so a 120min=2Hr Movie can take 6 hours to save !)
NOTE that most TV's (and TV 'sticks') will cope with a wide range of playback resolutions (as well as US 30fps and UK 25fps). So, for example, a 4:3 broadcast TV program should play back fine (with black side bars) on a 16:9 HD screen without you needing to do any 'size adjust' when converting from mpeg to mp4.
Mplayer
A GUI built on the Mcoder code, whihc was designed for high speed format conversion (not editting). At 10Mb (zipped) it's even smaller than Avidemux !
Format conversion is significantly faster, but it's rather harder to use :-)
Microsoft share
Your NAS / RAID back-up system can be used as your 'media server' just by enabeling one or more folders as a 'share' (although many have built-in sup[port for DLNA etc)
With a modern Giga-bit based wired network and a 54mbs WiFi hub you should have no problem 'streaming' media without 'jitter'.
'All' you need is a player that 'understands' Microsoft protocols .. For example, the Raspberry Pi :-)
Using a Media Server with a plug-in 'stick'
There are many plug-in 'sticks' (Amazon Fire etc) and 'boxes' (NOW TV etc) that allow you to play video and music from the web on your TV. Most (such as the Amazon TV Fire stick) are 'linked' to the vendors own Movie Store and designed to temp you into paying viewing fees. Others are more 'generic' (such as those containing the 'KODI' system) which allow you to search for and find free content on the web
A TV 'stick' is just a small computer (just like a Pi zero) that can support 'apps' = plug-in software to expand the functionality. So every TV sticks can also play back material from your own media server, although the commercial ones (Amazon Fire etc.) don't make it easy for you to find the required 'app' (or 'plug-in') and (of course) will continually default to their own (paid for) content
In addition to the 'app' on the stick, you will typically need matching 'server' software on your PC / NAS
Amazon Fire TV stick
WARNING. Your TV Fire stick comes 'pre-registered' to your Amazon account ! So ALWAYS enable 'parental controls' = if you don't you will get a massive shock at the end of the month as the Stick automatically bills you every time you depart from the 'free' (advertising supported) content into the 'subscription' material. It's the simplest thing in the world to view a free 'trailer' for a film, click to see more and then wake up to find you have paid $$'s for it ...
The Fire stick has native support for H.264 1080p30 and H.265 1080p30 only.
Audio support is better :- AAC-LC, HE-AACv1 (AAC+), HE-AACv2 (eAAC+), AC3 (Dolby Digital), eAC3 (Dolby Digital Plus), FLAC, MIDI, MP3, PCM/Wave, Vorbis, AMR-NB, AMR-WB.
It supports Dolby Audio output (5.1 surround sound and 2ch stereo) and also HDMI audio pass through (up to 7.1)
You can use the Fire stick with one of the Amazon 'promoted' apps (such as PLEX) or 'side load' the KODI system. Note that systems like PLEX may be 'free' however they typically have a rather poor GUI (and will constantly attempt to 'divert' you away from the 'free' functionality into their paid for 'premium' version). I use Plex for music playback. I've not used it for movies (I use my DIY Raspberry Pi KODI player), however IF you pre-convert your movie into H264/AC3, I would not expect any issues (users complain about poor quality playback, however I suggest this is because their movies are NOT in the native format and have to be 'converted on the fly' by the TV stick)
The Raspberry Pi as a PLEX Server
Much of the information below was gleaned from here and here
You don't need anything more powerful than the Pi Zero (the B3 is a waste of money unless you are going to use it as a video converter - which will 100x slower than using your PC)
Note, be sure to install and run PLEX using the default 'pi' user. Many guides will instruct you to run PLUX as a new user (eg 'plex'). Whilst it's generally a 'good idea' to setup different users (with different permissions) on a 'general purpose' computer, this DOES NOT apply to a dedicated Raspberry Pi PLEX Server ... so, unless you plan to use your Pi for Internet Banking, DO NOT fall into the 'trap' of setting up a new 'user' for PLEX. If you do so, you will be in for a whole world of 'permission denied' issues ... By default, all your folders and files on all your storage media (SDHC card, USB sticks, USB hard disks / CD/DVD drives) will all be 'owned' by the default user 'pi'. If you setup a new user for the PLEX application (called, say 'plex'), then it (PLEX) will have no access to any of your media devices or folders or media files :-)
Start by downloading 'Stretch Lite'
Your Pi Plex Server will need a 'static' IP address. If you are running a secure system, then you Router will be 'MAC Address locked'. THis means you nede to disocver the PI MAC address and add that to the list of permitted devices on your network. Belwo I'm just gping to assume you assign the Pi an address like 192.168.1.201)
The Pi Plex server IP address has to be fioxed. If not, each next time you reboot the Pi it can end up with a different IP address (and then your Plex media player won't be able to find the Pi Plex sevrer :-) )
IDEALLY, 'burn' the .imp to SDHC and then, on your PC, opebn the FAT partition and edit the cmdline.txt file (NOT the config.txt file) before moving the SDHC to the Pi
IF you already have a running PI, then to make the changes on the Pi itself :-
# edit the cmdline.txt file (NOT the config.txt file)
sudo nano /boot/cmdline.txt
You will see a single line of text, somethings like :-
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
Set the Pi to a static IP address (eg 192.168.1.201)
Edit the single line of text in cmdline.txt by adding 'ip=nnn..' as follows :-
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes ip=192.168.1.201 rootwait quiet init=/usr/lib/raspi-config/init_resize.sh
Save, exit and reboot
CTRL+X
Y
[Enter]
After making the change and (re)booting the Pi, check what IP the Pi is actually using :-
hostname -IInstall PMS (PLEX Medi Server)
Using 'Stretch Lite' :-
# become root
sudo su
# add dev2day public key
wget -O – https://dev2day.de/pms/dev2day-pms.gpg.key | apt-key add –
# add dev2day PMS repo
echo "deb [arch=armhf] https://dev2day.de/pms/ jessie main" >> /etc/apt/sources.list.d/pms.list
# activate https
apt-get install apt-transport-https
# enable armhf support
dpkg –add-architecture armhf
# update the repos
apt-get update
# install PMS
apt-get install plexmediaserver-installer:armhf
# reboot
You contol the Pi PLEX Server from any Browser (eg Firefox) running on your PC etc. To do this you need to know the IP addrtess of the Pi = let's say t's say, 192.168.1.201. Then, in the Browser address bar you enter :- :-
https://192.168.1.201:32400/web/