I'm trying to do frame by frame video processing on a camera and i'm not having too much luck. I want to just do pixel processing on each frame for a video offline (i.e record the video then process). Basically I'm looking to determine the average R,G,B color for each frame from a video/camera video capture. Any advice would be appreciated.
The current approach that i've been taking is to use the RecordControl to store the data as a byte, i.e.
The problem with this method is that the data is now in mp4 format and I just dont know how to access the raw pixels from this...
// grab a record control
rControl = (RecordControl) midlet.capturePlayer
// if not found, throw exception
if (rControl == null)
throw new Exception("No RecordControl found!");
// create a ByteArrayOutputStream to store this recorded data in
bos = new ByteArrayOutputStream();
// set up the stream
// and start recording - no need to start the underlying player
// as it is already started
...... get video
byte rawData = bos.toByteArray();
I've been thinking that I can feed this back into a player and then use getSnapshot(), but how do I control the play back? I've been looking at just FramePositioningControl. However i've tried several mobiles and had no luck with support I was wondering if any mobiles support FramePositioningControl?
I dont know if this is the best way or what, has anyone else figured out a better way of doing this.