I am working on a project trying to output video from a stored location on a hard drive, and I would like to output the video by use of a microcontroller.
All I know is that the video is in AVI format. Hard drive is ata/33. The chip should be connected to the hard drive, a remote control of some sort, and output devices (TV, projector). The projector is currently hooked up to a VCR. My project is to use a hard drive rather than the VCR. I'm not really concerned with the audio, just the video for now.
I am having a difficult time with finding informaiton about chips, which would work best for my situation.
Any thoughts on this would be greatly appreciated.
Then you don't know jack squat about it. AVI is not a video format at all. It's just a container file format --- the actual video data inside can be in just about every format ever invented for videos, and same for the audio stream.
Conventional microcontrollers can't do this --- you need a rather full-powered processor for that, or a specialized video co-processor to decode MPEG (and keep your fingers crossed that it *is* MPEG). Depending on the actual format used it takes at least the equivalent of a 400 MHz PC processor to decode full-screen video without assistance by special-purpose chips, and that requirement can go all the way up to 1000 or even 2000 MHz for the more recent formats like DivX.
It'd be a lot easier to just get a hard-disk VCR from your nearest advanced consumer electronics outlet.
Hans-Bernhard Broeker (firstname.lastname@example.org)
Even if all the snow were burnt, ashes would remain.
The easiest way to do something like this is to copy something that already works. For example, if you can find an embedded computer reference design that can run linux, you can use that to simply mount the hard-drive, and decode the video using some kind of free software decoder. You don't mention what kind of output you want, so I'll assume that VGA style is fine. Note that I've never done anything like this, but I think this is almost definitely the easiest way to do it.
Based on the level of knowledge you seem to have, I don't think you have a chance in hell of doing this unless you go with a solution that has most (or all) of the work already done.
Consider this: To read the file off of the disk, you have to understand the filesystem internal details thouroughly. How much do you know about this topic at the moment?
To even talk to the disk, you need some kind of IDE controller. To get this you will probably need to either have a PCI bus with a conventional IDE controller, or an FPGA connected directly to the hard drive. So you either need to figure out how to make the FPGA talk to the drive, or you need to figure out how to create a PCI bus and configure and talk to the IDE controller. Have you ever written a device driver before?
Most likely, the brains behind all of this will be some kind of processor anyway. Either a DSP or a fast general purpose processor. Maybe you can do the whole AVI decoding process in an FPGA, I don't know.
Any way, once you do all that, you can read in the file, but you still need to figure out how to process the AVI file into something else, then output the appropriate digital or analog signals you need for the video projector.
You won't be doing this from scratch any time soon; although there are parts that do what you want (with appropriate software - which you'll have to write), you can't get them.
Buy a single-board computer with appropriate video output. A mini-ITX board would be ideal for your needs, it has PAL/NTSC out (and S-video) as well as standard analog VGA. Run Linux, mplayer, and lirc. Put a remote control receiver on the IR port. This is a weekend's project, no more.