How to add a MOOV atom in a mp4 video file

Viewed 117619

I am working on live device to server streaming in android. I am able to send data in bytes on server but when I play that file during recording on server VLC say that MOOV atom not found. After a lot of workaround I found that MOOV atom of a mp4 file generates in the end. But I have to play that file on server while recording means live. I go through the source code of SPYDROID and SIPDROID but non of them is working. I tried to add moov atom on serverside using FFMPEG but didn't get any success. Anyone has an idea on how can I achieve this?

7 Answers

There is a tool untrunc which claims to repair unfinished (truncated) mp4, m4v, mov, 3gp video. I haven't tested it myself but it may be worth a try.

the mp4 format needs the moov atom information to play the video, and to generate the moov atom the video must be finished, you can't play a mp4 file while it is recording because you still don't have all the information to create the moov atom part.

What you want to do is some kind of real-time-streaming (play while is recroding) so you need to use another format. HLS streaming and mpeg-dash stores the video in tiny chunks (2 seconds to 10 seconds) and send to the users, this way the users plays many finished files one after the other.

as @Sebastian Annies suggested, to create many tiny mp4 files and concatenate is the same approach: to have tiny finished files and play as a list, here you could get more information What exactly is Fragmented mp4(fMP4)? How is it different from normal mp4?

Related