I have a few .exo files. When I use nautilus to browse the files, I can see the .exo files which are chunks that used to be part of a full video.
In my file explorer Nautilus, it detects that the first chunk of each video is a video file and if I open it in my default Video player, it just regularly starts playing the chunk but it stops when it reaches the end of the chunk.
The other chunks are in the same directory.
I tried concatenating the chunks together but the resulting file is not playable beyond the first chunk for most videos. Some videos play the second chunk but not the rest and some others only play the first chunk and the middle but not the rest.
I searched for a while on the internet but couldn't find how to do this. I need a starting point or some background information so I can concatenate them.
I'm looking for a solution I can run on the command line.
So far this is what I've tried:
cat 1.0.[some numbers].exo cat 1.[probably offset].[some numbers].exo ... > 1.0.mp4
The command above is just an example. Running it with my files as parameters yields a video file that can only be played partially.
- What is the format of those .exo files? I noticed that the first two bytes are always
0x00 0x00, followed by a few bytes that appear to be similar across all .exo files. - How does ExoPlayer stitch them back together to a video?
- Is there example code on how to do this manually, on the command line (Linux)?
EDIT:
If I run file on those files, this is what I get:
1.0.1536479693986.v3.exo: ISO Media, MP4 v2 [ISO 14496-14]
1.10485760.1536479697776.v3.exo: data
1.15728640.1536479703024.v3.exo: data
1.20971520.1536479710008.v3.exo: data
1.5242880.1536479695929.v3.exo: data
I think you should start from the source code.
Especially SimpleCacheSpan class and tests for this class.