Hi, I'm working on a project where I need to get live video from some digital camera and using the ARM8 I have to implement H.264 compression and transmit it over IP all in real time. I was thinking originally I'd start with a low resolution, around 240 x 180 and eventually move up but the problem is I need to be able to transmit a clear video over a band limited channel of 64 Kbps. I saw a program called Microsoft Lync which transmitted the video on that resolution and it could work on that bandwidth.
Mainly I have no idea exactly how I should start this other than researching on H.264 and video transmission, etc. I was hoping someone could give me some advice on this topic as in what camera I should use and basically where to start. Any help will be appreciated, thanks
Oh and I would also like to transmit it at about 15 fps if possible.
You could try this:
Start by buying an IP camera and hook it to your development board (using ethernet connection, RJ-45). IP cameras work as a server that will give you a webpage with a video on it. Your job will be isolate the video data streaming and use it as you wish.
One issue you may find is that the data streaming used by the camera is propietary and will work only with plugings provided by the manufactures to be added to your web browser.
Some manufacturers provide libraries and code examples to manipulate and extract the video datastream, I haven't use these libraries because is not needed for my application but you could try to use them.
These IP cameras also provide static images in JPEG format that can be refreshed periodically but not as fast as the 15 FPS that your require.
So a good start will be researching on IP camera manufactures and what sort of support they have in place for developers.
Hi, Thanks for the reply. I'll try that and I'll see if I need anymore help later on. Thanks again
Oh, actually I wanted to ask that if I get the JPEG images from the camera and let's say I want to make some adjustments to the compression technique I want to use, would that be possible? I found a book called "Introduction to video compression in c/c++" and I was thinking that I might make some alterations to he H.264 codec (just for testing purposes). Anyway how would that work? Like just code it? As in it's going to receive a stream of JPEG images and it has to use the compression method and transmit in the form of Ethernet packets? (which is how I want to transmit it)
Well, in the documentation provided with the SDk it says that there are commands to change the setting of the compression, you could have a look to that.
The JPEG image will spread along different TCP messages so you will have to handle that, detect the begining and the end of the image.
If none of the compression provided by the IP camera suits you I guess you will have to contruct the final raw image and apply your own compression algoritms.
You could also investigate in periperals (cameras)that could be connected to your dev board using DMA, this will probably provided the image in raw format ( could even provided JPEG), but on this issue I have no experience.