I'm trying to record a 10 second video for surveillance. That is quite straight forward using MediaRecorder in Android. All i have to do is call
mediaRecorder.setMaxDuration(10000);
However, i want to continuously overwrite the same 10 second video. Again this is a trivial task.
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
    switch (what) {
    case MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED:
        stopRecording();
        startRecording();
        break;
    }
}
Stopping and Starting (reseting) the MediaRecorder takes approximately two seconds. If something important happened during those two seconds, i will not have it recorded.
So i followed several others having the same problem by using a LocalSocket, and passing it's descriptor to MediaRecorder
mediaRecorder.setOutputFile(sender.getFileDescriptor());
Then an AyncTask containing a LocalServerSocket and a receiver LocalSocket
public class VirtualServer extends AsyncTask<Void, Void, Void> {
    ...
    server = new LocalServerSocket(SOCKET_ADDRESS);
    while (true) {
        receiver = server.accept();
        ...
        int len = 0;
        byte[] data = new byte[1024];
        while ((len = input.read(data)) >= 0) {
        ...
See where this is going? Once that is solved, a new problem arises, also addressed several times on StackOverflow. The problem is that the file descriptor passed to MediaRecorder is not seek-able.
For me this is where my understanding stops. Unfortunately there is no clear description of the problem. If someone can describe the problem to me i can start looking for a solution. Some places mention that "moot" has to be repositioned, but then the discussion drifts to general mp4 encoding, and i get lost in all the details.
i hope my problem is clearly stated. i do not wish to stream video of any sort. Digging into code that packetizes into RTP and trying to extract the parts i really need has made me even more confused.
Links i already looked at:
- http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system
 - http://hello-qd.blogspot.com/2013/05/how-to-process-mediarecorder-frames.html
 - Fix 3GP file after streaming from Android Media Recorder
 - http://code.google.com/p/ipcamera-for-android/
 - Streaming video from MediaRecorder through LocalSocket
 
Cheers.