Ask Slashdot: How To Make My Own Hardware Multimedia Player?
An anonymous reader writes "I was looking at multimedia players from brands such as SumVision, Noontec and Western Digital. They all seem to be some device which accepts a USB hard-drive and commands from an IR remote control, and throws the result over HDMI. I have my own idea of what a hardware multimedia player should do (e.g. a personalized library screen for episodes, movies and documentaries; resume play; loudness control; etc.). I also think it will a good programming adventure because I will have to make the player compatible with more than a few popular codecs. Is this an FPGA arena? Or a mini-linux tv-box? Any advice, books or starting point to suggest?" There certainly have been a lot of products and projects in this domain over the years, but what's the best place to start in the year 2012?
XBMC
I've gotta say, that if you're not aware of the Raspberry PI project, then you're asking the wrong question.
Quartz Extreme and Core Image. Are there any other real reasons to spend all that money on generic hardware?
Small form factor media PC running XBMC will do everything you want and more.
A friend of mine is looking at doing this very thing. He is going to use a Raspberry Pi, Linux and an XBMC style application.
A good ARM board with proper multimedia functionality should be sufficient (I think the Beagle board might be sufficient). Though obviously the larger FPGAs would excel at this. But it'd take quite a lot of time to rewrite everything in VHDL or Verilog. And even then, you'd need one of the larger more expensive FPGA's with enough slices. In the end it'd be easier to grab an old computer and make your own IR sensor and use one of those universal remotes with it.
The one thing all of the little hardware boxes do that your Pi running XBMC (or small Atom) can't do is streaming media. To be allowed to do that you have to prove to Netflix, Amazon, etc. that the box is tamper proof enough they feel safe in allowing 'The Precious' to be sent to it. Of course since pretty much every BlueRay player streams and sucks at actually playing irregular discs (as in downloaded content) just have one of those to cover locked content and build a media box of your own for everything else.
Democrat delenda est
Get yourself a WD TV Live Media Player Plus, get a 7200RPM 2TB USB hard drive. Connect the media player to your network via wired Internet. Copy media to the media player's share.
I also think it will a good programming adventure
Indicates that at least you have some sense of what it will take to do this and what the end result may (or may not) end up like. Too many people would go into a project like this with the idea of saving money (doesn't work) or making something that is better than mass market version s and usable by others in the household (no real chance of that).
But if you're looking for an adventure, this may be a good choice for you.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
That's what I did, use wi-fi to control.
Can't get easier than that...
[TPB] ---Internet---> [PC] ---LAN/WLAN---> [NAS] ---LAN/WLAN---> [HTPC with XBMC] ---HDMI---> [TV] ---vision---> [guy on couch]
Go and fetch the parts you are currently missing.
Boxee box is a cute little box with a modified XBMC. Works surprisingly well, indexing and streaming tv-shows and movies of my NAS.
Some bugs and limitations sure, but the WAF is incredible!
For ~70$ you can buy a chinese box running Android with HDMI output, wi-fi and remote on sites like dealextreme, merimobiles, pandawill etc. Something like this
(it's just an example, there are literally hundreds of slightly different options):
http://www.merimobiles.com/GV_11A_VI6131_Android_2_3_TV_Box_1080P_1GHz_HDMI_p/meri3957.htm
Don't expect it to work well out of the box, but as a DIY project it should be fine. You can write a custom android app to control it, or install something like plex for android.
For more possibilities, make sure you get a device with an available root access.
because there are lots of solutions available and many open source ones.
Seems people are too easy to "ask slashdot" instead of actually doing their homework.
I was involved in development of some hardware players (Sigma chipset). And media companies plays there major role. And most important for them IP. This means DRM. Also this means NDA. Realtek, Sigma, all the same in that.
Amazing hardware power, but very locked down before product release by patent restrictions and DRM.
I believe the best you can do and archieve your goals - Atom with some kind of GPU acceleration, but again proprietary drivers, to get acceleration.
FPGA i believe will need too much efforts for one person, to support all media formats
I'm sure there's many other devices and firmware to choose from, but I have a few of these WD TV boxes and have considered coding some of my own stuff for them starting with one of the custom firmware projects that are already available.
I assume you mean by hardware video player you're trying to make a dedicated piece of gear to play multimedia files. If so that is insane. Why re-invent the wheel for something everyone from the hacker community to the big manufacturers are doing perfectly fine with software and off the shelf components?
Most hardware media centres are nothing more than some fanless microITX PC with a TV card, harddisk, and some custom made LCD front display. It's one of the reasons they take so horrendously long to start up. Why not just whip together something like that and then throw XBMC, Myth TV, or MediaPortal on it? Bonus points for making it run on a Raspberry Pi, or some other ARM based processor.
Those three packages seem to do basically all of what you're suggesting anyway so what are you trying to gain?
If you think you can do it better than the existing packages then why not make a plugin for them? You get to build on an already established project which has been through the countless mistakes you're likely to make on the way, and you can give back to an existing and large community rather than competing with the established players.
If you get tired of trying to build your own buy a WDTV Live box for $90. It plays every file I've thrown at it (m4v, mkv, DVD VIDEO_TS dir, and more) and can do so from NFS and SMB shares. DLNA is HORRIBLE, avoid it like the plague. You can set up metadata in XML files that it will read and display.
You want loudness control? Movies AND documentaries?
Resuming play?(!!)
You're going to need a lot of FPGAs, and you're going to need to rewrite a lot of popular codecs. Movie codecs. Documentary codecs. TV episode codecs. Audio codecs (with loudness control).
Thinking about this some more, are you sure the "popular" codecs meet all your requirements? Those codecs are for the kind of people satisfied without a customized library screen. Think big. You need to write some of your own codecs, running on your own optimized OS, and your own network protocols. Then shoot your own movies.
You're going to need a lot of books for this.
Let's not stir that bag of worms...
My Atom boxes running XBMC can access both Amazon instant watch, and Hulu content just fine. I can't access Netflix as I am running Linux and Silverlight doesn't exist on that. But if I actually used Netflix I have a PS3 or Google TV I could stream to.
Outside of Netflix XBMC will pretty much stream everything. The nice thing about the Hulu plugin is that you don't need Hulu Plus, and if you have Plus all of those shows that won't let you stream to a TV will still play just fine.
If you are interested in either Amazon or Hulu, install Bluecop's repository. http://code.google.com/p/bluecop-xbmc-repo/downloads/list
Just download the repository zip to the root of a thumb drive, and plug it into your XBMC computer. Then select to install an add-on from a zip, and choose the file on the thumb drive.
Both Amazon and Hulu require an updated Flash library, so make sure you are running XBMC Eden, otherwise you'll have to manually update the library, and there really isn't a good reason not to update to Eden.
Most of the devices use the ffmpeg libraries to handle the decoding (and encoding on those that can rip or record).. which always made me wonder why some don't support certain formats/codecs while others do considering they're nearly all built using ffmpeg...
There are many comments regarding procs with HD video with 1080p support. Unfortunately, most of these do not come with DTS-MA or Dolby TrueHD capability. A true multimedia box should have these capabilities and more. Take a good look at Sigma proc based multimedia players like the Popcorn Hour and you'll know what I mean.
Was using PS3 w/Media Centre (DLNA streaming app) on a PC.
Then I read up cinavia
http://en.wikipedia.org/wiki/Cinavia
http://www.avsforum.com/avs-vb/showthread.php?t=1265114
Decided to convert my NAS
https://www.google.com.au/search?q=hp%20microserver&hl=en&meta= into a HTPC with a slimline video card (40$) and put XBMC on it (plus XBMC remote for Android, no IR, no bluetooth required)
Has been better than expected, XBMC came a long long long way since my Xbox 1.
Playback is smooth, UI is good, even installed MySQL on the little NAS and now the library can be accessed around the house easily with multiple copies of XBMC tied in to the main box.
Very good stuff.
Unless you want a project, a serious project, you don't want to do this on an FPGA. It'd be months of full-time work for an experienced FPGA person. Just use a computer, whatever size, and leverage all the software that's already out there.
Tiny cheap solutions like the raspberry pi are kind of limited.
I've got an Intel Atom/NVidia ION mini ITX board that was pretty cheap. It has a single PCIe x16 slot and 4 SATA ports and was worth less than $100. There are similar chipsets which I'm sure would work equally well and still beat the crap out of tiny boards like R Pi.
It's a file server, a media center, and it even does well with office suites and web browsing. Media players like XBMC are no problem, as are standard peripherals like wireless keyboards. I can also drop in up to 4Gigs of RAM and some 12TB of hard drive space.
Way, way way more flexible than any ARM device on the market could possibly be, and much more mature and easier to get working for multiple common tasks - not just playing media.
This is what I just put together. System PXE Boots Debian, and starts up XBMC within about 20 seconds. When running, it's only 25 watts or so, and it boots fast enough that I have no problems shutting it down when not in use. Plays 1080p high profile smooth as silk.
...si hoc legere nimium eruditionis habes...
Boxee is great, I just plugged it in, setup is simple, and just use it.
Seems to play and support _everything_. No nonsense no hassle, no rebooting or tinkering, just using and enjoying.
For files i pull them off a 2008 server share.
Really happy with it.
If you buy a WDTV product you really, really want to flash it with WDLXTV goodness:
http://forum.wdlxtv.com/
I deny that I have not avoided attaining the opposite of that which I do not want.
I have a Roku 2XS. It has a Plex client. I've run the Plex server on my Mac and on an Ubuntu box and in both cases this setup works just fine. I've streamed a handful of movies and TV shows and so far am very satisfied with the results. I have an older Linksys E1000 using stock firmware. I haven't even bothered to optimize my wifi network. With some QOS I might get higher quality streaming but I have an old SD TV so my standards are low. Will get an HDTV sometime this year and will want 720p or better so will probably upgrade the WLAN. When I had the Plex server running under Ubuntu it was running inside of a Proxmox VM. That worked really well. I'm rebuilding the Proxmox host now and will probably go back to that setup.
If a media/content producer/distributor wants to use DRM, then I don't want their crap. So I don't care if the media play box can do DRM or not. I'll make or get DRM-free content. I want a box that can play any and all of that, from anywhere, including media in Linux and BSD filesystems.
As I see it, any media/content producer/distributor that wants to use DRM is clearly not marketing their product to me. That means they cannot claim what I'm not buying from them as a loss, because their businesses model doesn't include me at all. That doesn't mean I don't sometimes buy some DRM content, such as Män som hatar kvinnor / Flickan som lekte med elden / Luftslottet som sprängdes. But generally not because it's so difficult to play on those crap DVD/Blu-Ray boxes they make these days, and all the trailers they won't let you skip forward in.
So anyway, there is NO LOSS to them whether I do, or do not, download what someone ripped from some DRMed source. If I do have any ripped DRM content, I'm perfectly willing to buy it from them if/when they offer it in MY market (e.g. no DRM) for a reasonable (same as others) price.
now we need to go OSS in diesel cars
There are some great discussions going on here, but too many people are saying stuff like XBMC or building PCs or some crap. Doesn't sound like what you are looking for.
I am no expert, but I could tell you what some of these devices that you talked about actually are.
First, you would probably need a customized motherboard which has HDMI output for both audio and video. As building your own motherboard would be costly, it sounds like you are going to need something like a microATX motherboard to start with. You probably don't need a ton of features on it - you are not going to be plugging in any cards, just mainly it needs to support HDMI, SATA harddrives, and USB. Also make sure that it has a good onboard video-card that has great video-hardware support for whatever OS you are going to throw on it
You may or may not need an x64 processor - if you want to do just 720p video, you could probably get away with an ARM processor, as my tablet is able to handle 720p mp4s just fine. If you are looking to do 1080p or higher, or Full3D (either Full SBS or whatever), you are probably going to have to go with a multi-core x64 processor. I will let you decide which one you are going to use.
The amount of ram is probably going to be dependant on how much you customize your kernel (on a Linux based system), or which OS you decide to use. I mean, you could easily throw Windows 7 on the thing and use Media Center, or some plugin for it, and end up having to do zero programming, you just have to setup the software. So, depending on what you want to do, you could go anywhere from, say, 512 meg of ram up to 4 gig (should be plenty).
If you do go windows 7, you could get Media Center to launch on startup, then get a Windows Media Center remote from amazon for like $20. You could either mount USB ports inside the case or try to do some custom wiring and see if you can get your USB device to connect to a USB port on the PC. You are going to need to do a bit of cutting to the front of the case to mount your IR sensor, then maybe put a piece of tinted glass in front of it to make it look cool.
Don't forget to mount your Harddrive.
You may need to use the DVI connection on the motherboard for the initial installation of software and setting up of the OS, but you should then be able to have it default to HDMI once its setup.
Setup networking on it to easily put files onto the device.
There are a few UIs out there that you can put on top of MediaCenter to customize the look and feel. This would require zero programming.
Now, if you want to use Linux or Android, it would require a bit more work, and would mean that you may have issues playing something like Blu-Ray content, but I don't think most of the media players you mentioned support that, either. Usually, you are throwing MKVs, AVIs, or movies at it, and many of the codecs you can get for Linux. I have been away from Linux for a while, though, and not sure how well hardware acceleration works now. The downside to using Linux or Android is that it WILL mean that you will have to do a bit more customization, but you could do more as well. You could add an LCD pannel, and a few other things.
In either Windows, Android, or Linux, you can change your splash screen when it powers up, so you don't HAVE to use the Windows Logo (not sure where to change it in Windows 7, but it was easy enough to do in XP) or the Android logo or whatever, and if you decide to write your own software, you could do whatever you want. In fact, you could probably even write your own UI for MediaCenter and have it use that cool front LCD panel if you want to.
Point is, you can get one up and running with zero programming skill, and even get it with a customized startup logo and a UI that you can download off the net with basic tinkering skills, and not really even have to worry about codecs because there is software out there already that takes care of it. Or you can spend the next 2-3 years of your life writing your own video-software and embedding
If you fancy some DIY, there are several good chipsets for media players: Intel CE4200 (i386) and several Marvell ones (ARM) just to name a few. They normally handle 720/1080p, stereo/5.1 audio and yes, they all run Linux :-)
I personally like Marvell Armada chipsets (have been working on them in the past) and they're also used in some plug computers, which is something you may like to try (double-check the specs though).
Once you've got your HW decoder, you can generally run gstreamer on it. You may need to fine-tune gstreamer for the particular chipset though, and possibly write your own player around it, as using gst-launch is quite hard-core. There are several other open-source libraries to add nice features, e.g. lirc for IR remote controls, DirectFB for GUI/OSD and WebKit for web browsing. Qt may be ported as well, which would be a good plus to me. You may also consider live555, which is what VLC is using I think. Of course XBMC is still a great solution, if you want things working (almost) out of the box.
The best thing would be to double-check the SDK documentation (whenever accessible) and see what's supported by each particular chipset. Whenever a core feature is there (e.g. the codecs you want, input support, etc.) then it's possible to write some SW to use it. Unfortunately, in my experience, Python is seldom considered, but if you fancy C/C++, sky's the limit.
The guy wants a project to hack together.
Here's what i have:
* i3 2120T with no cooling
* Some Asus micro-ATX board
* 2x4gb of ram
* 2x3 tb Hdd
* Pico PSU
* Media center case with 1 12cm case-fan (the only fan in system)
As a result i have a media server that serves all other systems (primary tv via HDMI, rest via DLNA or fileshares), that is always on (seedbox), can play 60fps 1080p with no problems and takes almost no power (12w idle/seeding, 14w playing 1080p, 75w peak at startup)
Get a developer version of a SigmaDesign chip+board. This is used in many of the commercial players and isn't just a PC with all that crap software.
I've used XBMC, DLNA, 7MC, WD TV Live, and older MediaGate devices. They all suck in some way. For low cost, low power, high def viewing, the WD TV Live rocks. XBMC demands good video drivers; on my atom hardware, even 720p stutters with intel graphics.
For a DIY project for someone with programming talent, the Sigma Design dev kits will be lots of work and fun.
I actually started a project like this years ago for a college project. We were making an open source game console with the ability to act and preform as a multimedia hub. Of course the profs threw the idea out, it wasn't acceptable for a 3rd year Electronic Engineering Project ( somehow ). It might be a cool to revive what I started with a move forwards. In the design we had it was a Linux based project with a custom distribution.
:-)
I think going the FPGA route would be wrong, do you think you would require that much raw power? The other issue with an FPGA is figuring out how to deal with it, well you can throw some soft cores on it like Microbalze ( Xilinx ) or PowerPC and go from there you can also work with it directly in VHDL or Verilog.
I think this is a really interesting project and I think you should totally take it on. As for design I would vote go the Linux path on a standard x86 or maybe PPC setup and run from there. Only pick the FGPA is you want a hard time
Happy HTPC user for 9 years now. Windows Media Center Is the only 10ft PC display that I've been satisfied with the HD Television performance on. Media Browser plug in for local media. It's stable and easy to use.
I can't access Netflix as I am running Linux and Silverlight doesn't exist on that.
Silverlight actually exists for Linux (aka Moonlight); I reckon that it works really bad, it's acutally completely useless in general.
this post contain no useful information, no need to mod it down
Zotac, GNU/Linux and XBMC. I have the Zotac Zbox nano ad10 plus (IR Remote control, HDMI, SDHC, USB3.0... It comes with AMD but Zotac also have Nvidia and Intel versions.
DRM isn't implemented in Silverlight (for obvious reasons), so it can't play Netflix. About all I've ever seen in Moonlight is a notice to update my version of Silverlight.
Put together a small quiet desktop PC with a fast processor, plenty of RAM, a TB HD, very good video card, and two twin tuner HD receiver cards. Load it with MS Windows 7 ultimate 64 and run windows media center. That's it! None of the others can match the elegant user interface. I don't like MS much either, but it is free if you are prepared to put up with the nag screens.
Heavy is the head that wears the tinfoil hat.
See that little USB port on your machine or blu ray player? It will likely play media files.
I just download to a stick and shove it in the TV, no other hardware. There is no spoon.
To get back to the original question: "How To Make My Own Hardware Multimedia Player?"
Technically, the question may be answer as follow : Select the right software with the right hardware according to your need. I would definitly recommand XBMC or a fork of it to anyone trying to setup an HTPC. There are many. To name a few : XBMC, OpenElec, Boxee, MediaPortal, Plex
If you currently store all your medias to a location accessible from the network (NAS or server), I recommend you to select OpenElec (http://openelec.tv/) It's a fork of XBMC intended for embedded system. Combine with an ION motherboard (see http://www.nvidia.com/object/sff_ion.html) like the ZOTAC IONITX-L-E or ZOTAC IONITX-T-U it give you a very silent setup. The ZOTAC IONITX-T-U is actually power by an AC/DC adapter, similar to laptops. With OpenElec it boot very fast (within 20sec or less).
If you intend to have an all-in-one box with the storage, I will still recommend an ION motherboard, but make sure it's powered by a 24 pin ( a PSU ), so it's can also de power you'r hard drive. For the software, I would recommand XBMCbuntu. A bit slow to startup, but the goal is too keep open always on. With this setup, it's give you all the flexibility of computer. You can have a web browser. You can install a torrent client. You may also setup a software raid.
Any how, if you are a big Apple fan with all the 'i', I would recommand you to go with Appel TV. Even then, you may have some fun with XBMC (It's support AirPlay).
The Propeller multicore Micro-controller can do all of those things and is now sold on the shelf at radio-shack. if you are not afraid of a little soldering, you can build it up and load it with software modules readily available as part of the Propeller Object Exchange, OBEX, (under the MIT license) for communication, displays, storage, and pretty much anything else under the sun (if not in the exchange, check the forums). There is even a modified Linux that will run on one.
Propeller: https://www.parallax.com/tabid/407/Default.aspx
Free Code: http://obex.parallax.com/
Linux Based OS: http://forums.parallax.com/showthread.php?123795-spinix&highlight=linux
Common Sense isn't as Common as people think...
The new WDTV (that came out in November 2011) has N wifi built in.
http://www.amazon.com/Western-Digital-Streaming-Media-Player/dp/B005KOZNBW
I LOVE that thing (although I have it wired, as it has a GigE port as well). It plays absolutely anything you throw at it.
With the first link, the chain is forged.
download netinstall image of favorite linux distro (debian squeeze stable for me), install onto old junked pyewta obtained for free from work/friend/family, plug into telly (most lcds have vga) and a decent sound system and you're done. no need for new internet telly or pvr.
works for me anyway