or Connect
AVS › AVS Forum › Gaming & Content Streaming › Networking, Media Servers & Content Streaming › Noob looking to build home media server
New Posts  All Forums:Forum Nav:

Noob looking to build home media server

post #1 of 12
Thread Starter 
Hello,

I hope you guys can help me out. I'm a computer science student, but I've only worked with software. I am looking to build a home media server. This is my first foray into the hardware world, and I'm hoping you guys could give me some much needed direction. I have been looking online for decent information regarding this project, but up until stumbling across this site all I have found is useless posts and information more than 5 years old.

I am looking to create a home media server with a twist. I want it to be able to do all the standard things you would expect of a home media server:

- Stream movies to the TV through HDMI (not wireless, unless there is a cheap and easy way to do that that I haven't seen yet)
- I would like to be able to stream movies from the server to my laptop, over the house wifi. Would it be possible to do this? Another option would be to download the movie from the server and then play it on my laptop, though streaming would be much preferred.
- I want to play music from the server, so I will hook up speakers to it. I'm not an audiophile or anything, I just want standard quality music.
- I want to be able to back up any and all files wirelessly. So I could send my music library that I have on my laptop to my media server without having to directly plug it in. Also the same with downloading, I would want to be able to pull any files I wanted off the server and onto my local device.
- I would like to use a free operating system, I have Ubuntu in mind but I am open to suggestions. I don't want to go with too specialized an OS though, because I want to be able to run scripts I would write on this server.
- For now I wont be going with a raid array, as I am still a college student and can't afford to buy so many hard drives. But I would like to keep that option available.

An additional requirement I have for this project:
- I need to be able to run a web server from it. Nothing too crazy, really just a few commands I would send from my laptop or smart phone. But for this reason I don't want to buy a stock device, I want it to be an actual computer that functions as a media server. I believe the term is HTPC? Basically I am building this in part to store my media files, and in part to learn about computer networking and hardware.

So I have these ideas for this project, but I've been struggling to find a place to start. Like I said most websites are either many years out of date or provide no information, they just say load windows server OS and nothing else.

I am curious about what the hardware requirements would be for this. If, for example, 2 people were streaming movies at the same time, what kind of mother board would I need to handle that load? My goal would be to support up to 2 video streams, as well as running the webserver, and, if possible, streaming music. I really have no idea if this is a reasonable goal though, so I am open to changing it. And what about the router? I assume I would need special equipment to handle this much traffic?

I am a computer science student so I am doing this in part as a learning exercise, but also because I think its cool. Up until now I've only worked with software, so I'm pretty new to the concerns of hardware. I'm feeling somewhat overwhelmed by all the acronyms and its hard to keep straight what everything means when reading hardware specifications. I could really benefit from some good learning material and advice.

Thanks for reading all this. I hope you all can help me!
post #2 of 12
There is a dedicated section of the forum for home theater computers which includes media servers. http://www.avsforum.com/f/26/home-theater-computers This thread will probably get moved there.

I'd suggest reading through some of the threads there. Plex Media Server sounds like it would be a good solution for you. Unless you want to spend a lot of effort setting up a multiple access point WiFi network in your home you're most likely going to want to transcode your movies so they can be played back over wireless. Plex Media Server can do this on the fly. It'll also give you access to your movies and music remotely on your mobile device or laptop. Since cost is a concern you'll probably want to use some type of soft RAID or use a cheaper hardware RAID card with RAID5/6.

If you're going to be streaming and transcoding multiple files you want something like a i5 3570. Transcoding can be pretty CPU intensive depending on the codecs involved. Any decent Gigabit network should be fine for 2 simultaneous streams.

For reading material check out the Assassin HTPC blog. http://assassinhtpcblog.com/. Assassin is also a member here and pretty active in these sections of the forum. Renethx also has a guide here: http://www.avsforum.com/t/940972/guide-to-building-a-htpc-workstation-and-server that is a bit outdated but still good information to read through.
post #3 of 12
Thread Starter 
Wow awesome, more information in 40 minutes than I got searching for a week. Thanks for all the help, I'll definitely look into those links you sent. And I'll also make sure to go to the right part of the forum next time ><<br />
Thanks again!
post #4 of 12
No problem. There is a lot to read there so I'm sure you'll have more questions. I'd suggest just continuing to post in this thread as one of the moderators will move this thread if they feel it's necessary. The question of "how or what should i build" comes up a lot so expect others to chime in as your questions get more specific. wink.gif

Assassin's page has a paid section which (from what most people say) is very well worth the price.
post #5 of 12
Thread Starter 
Hmm ok I will look into that.

So I've briefly looked through Renethx's guide (very briefly, theres so much info!) and I have a few questions already.

Firstly, what exactly is the HBA used for? From what I can tell it is used to connect many hard drives to one SATA port on the mother board. Is this correct? Or does it do anything else, like accelerate data transfer or something? For my purposes I will have 2 hard drives tops, at least for the foreseeable future, so will I need an HBA? Most of the motherboards I have looked at had a sizeable number of SATA ports, which is what you plug a hard drive into correct? So would I need an HBA only if I have more hard drives than SATA ports on the motherboard? Or are the SATA ports used for other things as well?

Related: If I don't want to get a RAID configuration now, but I am looking to potentially do so in the future, what things do I need to consider? Looking at the webpages for some of the motherboards listed, they have a column for SATA-RAID. I assume these are the RAID levels supported by the mother board. Is that correct? Do any other components put limits on the RAID capacity of the system?

MicroATX vs ATX vs HTPC: It seems these do mostly the same thing. If I am not interested in using this device for gaming

Most of the kits in his guide don't have a lot of RAM. I would have thought that would be useful for encoding / decoding. Is that not the case?

Last questions about for now, about the Plex Media Server you mentioned. It seems pretty cool, and it seems to be free. Is that the case? I don't really have any way to download it and install it to try it out right now as I only have access to my laptop. The website was lacking in explanation of what exactly it is and how it works. Is it an operating system? A file manager of some kind?

Actually one last question, you mentioned something about encoding / decoding for streaming video. Is this something that needs to be / can be done in advance? Would I need to tie up system resources every time a video is uploaded, or would the video be available right away? You mentioned this is something that Plex could take care of. So I would just, in some form, tell Plex, "stream this movie" and it would take care of all that for me?

Thanks again for your help!
post #6 of 12
Quote:
Originally Posted by habahut View Post

Hmm ok I will look into that.

So I've briefly looked through Renethx's guide (very briefly, theres so much info!) and I have a few questions already.

Firstly, what exactly is the HBA used for? From what I can tell it is used to connect many hard drives to one SATA port on the mother board. Is this correct? Or does it do anything else, like accelerate data transfer or something? For my purposes I will have 2 hard drives tops, at least for the foreseeable future, so will I need an HBA? Most of the motherboards I have looked at had a sizeable number of SATA ports, which is what you plug a hard drive into correct? So would I need an HBA only if I have more hard drives than SATA ports on the motherboard? Or are the SATA ports used for other things as well?

An HBA (host bus adapter) is a PCI, PCIx or PCIe card with it's own storage chipset and SAS ports. There are many reason to get an HBA and many different ways to implement an HBA in your setup. The most common usage for media servers is for extra storage capacity. There are a lot of people here with 10+ HDDs. If you only need 2 HDDs then you don't need an HBA. It can always be added later if you run out of onboard SATA ports.
Quote:
Originally Posted by habahut View Post

Related: If I don't want to get a RAID configuration now, but I am looking to potentially do so in the future, what things do I need to consider? Looking at the webpages for some of the motherboards listed, they have a column for SATA-RAID. I assume these are the RAID levels supported by the mother board. Is that correct? Do any other components put limits on the RAID capacity of the system?

Most people will recommend (and I will as well) to get a mid-range Intel based motherboard. Z77 chipset or Z87 chipset. Z77 chipset is for SandyBridge and IvyBridge processors and Z87 is for Haswell processors. Any Z77/Z87 motherboard you choose should have onboard RAID support. You would want to configure the SATA ports for RAID mode in the BIOS/UEFI even if you don't want RAID. That will enable the advanced AHCI storage as well as prevent you from re-installing anything if you want to add RAID volumes in the future.
Quote:
Originally Posted by habahut View Post

MicroATX vs ATX vs HTPC: It seems these do mostly the same thing. If I am not interested in using this device for gaming

MicroATX and ATX are the motherboard form factor which describe the standardized layout, shape and mounting holes for the board. HTPC is just an acronym for home theater PC but some sites call small form factor motherboards HTPC boards.
Quote:
Originally Posted by habahut View Post

Most of the kits in his guide don't have a lot of RAM. I would have thought that would be useful for encoding / decoding. Is that not the case?

RAM is cheap so there is no reason not to get 8+ GB. However encoding isn't really a high I/O or memory intensive process. While encoding the processor spends a large amount of time on each frame. The processor is the bottleneck so it doesn't really stress other resources. Transcoding (basically encoding on the fly) obviously has to stay ahead of real-time so it spends much less time on each frame but it's still a relatively low resource utilizer and doesn't require all that much RAM.
Quote:
Originally Posted by habahut View Post

Last questions about for now, about the Plex Media Server you mentioned. It seems pretty cool, and it seems to be free. Is that the case? I don't really have any way to download it and install it to try it out right now as I only have access to my laptop. The website was lacking in explanation of what exactly it is and how it works. Is it an operating system? A file manager of some kind?

Plex Media Server is free and opensource and you have the option to pay for a PlexPass at either a monthly, yearly or lifetime membership which enables you access to member only forums, bug and feature voting as well as preview releases of the software. Plex Media Server is installed on the server. Which supports multiple OS's as well as several NAS devices. You use it to create your media library and it scrapes your media to present cover art and movie details. It creates a remotely accessible site so you can access everything away from home as well as people you share your Plex with to access your media. It also has a transcoding piece for serving up media to clients that can't natively playback your files as well as reducing the bitrate for Wireless connections and remote connections.

There many clients for Plex. Plex Media Center/Plex Home Theater is the flagship client which runs on a HTPC. They also have an LG client for compatible LG TVs and Bluray players and a client for Samsung devices as well. There are Apple and Android clients too.
Quote:
Originally Posted by habahut View Post

Actually one last question, you mentioned something about encoding / decoding for streaming video. Is this something that needs to be / can be done in advance? Would I need to tie up system resources every time a video is uploaded, or would the video be available right away? You mentioned this is something that Plex could take care of. So I would just, in some form, tell Plex, "stream this movie" and it would take care of all that for me?

Thanks again for your help!

As I mentioned transcoding is basically just encoding on the fly directly to the client device and specific to that device. Encoding is a predefined set of parameters that you set and output to your filesystem. You have the option to encode before hand which reduces file system space requirements and you can encode your media so that it direct plays on your client. Transcoding has a CPU hit on the server and depending on the circumstances can sometimes cause playback issues like buffering or pixelated video. In Plex you can set the client to direct play if possible and transcode if needed. This is how I have my Rokus setup.
post #7 of 12
Thread Starter 
So about encoding: are you saying there are multiple encodings, so every device could potentially require a different encoding? In this case I would imagine transcoding would be necessary so you don't have to store multiple versions of everything.

I'm trying to wrap my head around this encoding thing. So there is the raw video and stored on your hard drive. It needs some form of pre-processing so that it can actually be displayed on the screen. So if the server were to read this data from the hard drive and then send it to another device, I would have two options. I could either transcode it on the spot before it leaves the server and then send that encoded data to another device, or I could send the raw data and let the other device do the encoding. So obviously for streaming to smart phones, I would need to transcode it since the smart phone wouldn't have the horsepower to do the transcoding itself. Same as if I was sending it directly to a screen through an HDMI cable for example. But for sending it to a laptop or PC, the server could leave the encoding to the PC on the recieving end? Do I have that right?

So Plex is not an operating system. It handles encoding and such. Is Plex all I would need to stream movies? Or would I need other software? It seems like there is a lot more to this than just configuring the hardware. Or do systems like Plex mostly handle all of that? Also is madVR worth looking into? It seems to do some of the same stuff you were saying Plex does, encoding and such.

So basically what I gather is that a fairly low end CPU and mother board could handle. But that the transcoding is a processor intensive. It seems like theres a bit of guesswork involved here. On assasins hardware guide: http://assassinhtpcblog.com/?page_id=160 he promotes CPU's from $75 up to $150 and above. Is there a way to know for certain exactly what level of CPU I need, or is it more of a, this should be good enough situation?
post #8 of 12
Quote:
Originally Posted by habahut View Post

So about encoding: are you saying there are multiple encodings, so every device could potentially require a different encoding? In this case I would imagine transcoding would be necessary so you don't have to store multiple versions of everything.

I'm trying to wrap my head around this encoding thing. So there is the raw video and stored on your hard drive. It needs some form of pre-processing so that it can actually be displayed on the screen. So if the server were to read this data from the hard drive and then send it to another device, I would have two options. I could either transcode it on the spot before it leaves the server and then send that encoded data to another device, or I could send the raw data and let the other device do the encoding. So obviously for streaming to smart phones, I would need to transcode it since the smart phone wouldn't have the horsepower to do the transcoding itself. Same as if I was sending it directly to a screen through an HDMI cable for example. But for sending it to a laptop or PC, the server could leave the encoding to the PC on the recieving end? Do I have that right?

So Plex is not an operating system. It handles encoding and such. Is Plex all I would need to stream movies? Or would I need other software? It seems like there is a lot more to this than just configuring the hardware. Or do systems like Plex mostly handle all of that? Also is madVR worth looking into? It seems to do some of the same stuff you were saying Plex does, encoding and such.

So basically what I gather is that a fairly low end CPU and mother board could handle. But that the transcoding is a processor intensive. It seems like theres a bit of guesswork involved here. On assasins hardware guide: http://assassinhtpcblog.com/?page_id=160 he promotes CPU's from $75 up to $150 and above. Is there a way to know for certain exactly what level of CPU I need, or is it more of a, this should be good enough situation?

So there are a lot of variables at play here. Each playback device will natively support a set of video codecs, audio codecs, subtitle formats and media containers. You have a video on your server and no it doesn't always need to be transcoded (pre-processing) as that will depend on what the playback device is natively capable of. If the device is natively able to playback the file then there is no encoding or transcoding going on. Only decoding by the playback device. So even on a device like a smartphone it's possible to playback the original video as long as it's natively supported by the playback client.

Take the Roku for example. Over HTTP (streaming) it only support the H.264(x264) video codec, AAC and AC3 5.1 audio codecs, SRT subtitles inside the .mp4 container. It's one of the most limited devices in terms of playback compatibility. Say I have a video that uses the AVC video codec and DTS audio codec inside an mkv container. Roku can't play the file. So when you play this movie from the Plex client on the Roku, the Plex Media Server will determine what formats are supported and then transcode the AVC video into x264 and the DTS audio into AC3 5.1 and put the two into an mp4 container stream.

Now take a Windows 7 machine running the Plex Home Theater. It can playback tons of codecs and containers so chances are whatever you throw at it will playback without the need of transcoding.

Devices like Samsung TVs/Bluray players and Android mobile devices are also going to have limited playback support. So if you plan on playing back your media on a variety of devices having a server like Plex in the backend is a good idea so you'll be covered no matter what device you're using.

So no Plex is not an operating system. It's server software that sits on top of an OS. Would you need other software? You would need software on the playback side. Either the Plex client or some other DLNA capable player. I wouldn't look into anything like madVR until you get your feet a bit wet. That get's into tweaking the decoders you're using for better picture quality, enhanced and more smooth playback.

For the most part a mid-level CPU like a i5 3570 would be able to transcode 2 video streams and some other minor tasks. Some combinations of codecs/containers cause the transcoding to work harder than others and there are some scenarios where it will bottleneck. I use a i5 3570k overclocked to 4.2GHz and I haven't run into any issues with mine.

Another option.... is to skip the software server layer and just use a file system. Setup a share with all of your videos and use a standalone player like a Dune, Popcornhour or Med8er media player. These players can playback just about anything and they'll just connect to a share on a server and play. You also mentioned just connecting a TV to the server via HDMI which is another option. You could still use Plex Media Server and just install Plex Media Center/Home Theater on the same machine or you could just use a standalone player like VLC or MPC-HC.
post #9 of 12
Thread Starter 
Wow great information! Thanks for answering all my questions smile.gif

That clears a lot up. So to clarify one thing, is VLC a DLNA capable player? And how exactly would I go about streaming a video to a device. Lets say I have VLC on my laptop and I want to watch a movie thats on the server. Would I just basically do file -> open, navigate through windows explorer to a folder on the server? Then how would Plex know what codec to send?

I would like to be able to start such playback through a program or script that I would write. Do any of these video players have particularly friendly APIs?
post #10 of 12
VLC might have some sort of DLNA support I'm not sure. Most people use VLC because it has vast codec support so it pretty much plays everything. I use it to just play files locally on the computer I'm sitting at. I don't use it for my theater or anything. MPC-HC is similar and I believe it has more customization and better picture quality? Other people on this forum could provide more information on VLC and MPC-HC than I could as I don't use them often.

Typically things like Blu-ray players are playback devices where you would use DLNA support to playback videos. I use Plex's DLNA server to playback movies on my PS3.

With VLC on a laptop you could just browse to a network share in Windows Explorer and play it. At that point you're just direct playing the file from the file system. Plex isn't involved.

As far as making calls to the APIs I have no idea it's not something I've looked into.
post #11 of 12
VLC does have UPnP/DLNA client support but it's buried away in a sub-menu.

Go view->playlist then go to local network->universal Plug n Play and UPnP/DLNA servers will appear there.
post #12 of 12
Thread Starter 
Hey guys,

Thanks for all your replies. I've posted a new thread with my first ideas for hardware here: http://www.avsforum.com/t/1483265/first-htpc-build-looking-for-feedback-on-hardware
If you have any feedback it would be great if you could post it there so that all the discussion will be in one place
New Posts  All Forums:Forum Nav:
  Return Home
AVS › AVS Forum › Gaming & Content Streaming › Networking, Media Servers & Content Streaming › Noob looking to build home media server