How to Recover a Corrupt Webex recording#

If you’ve ever ended up with a corrupt .webex file after a meeting instead of the MP4 file, you’re not alone. Fortunately, it’s often possible to recover the underlying video data using open-source tools like FFmpeg and anthwlock/untrunc.

Please note that this post is intended for tech-savy people. If you do not know how to use a CLI or what it is then this post is probably not for you. I’m only posting this because I found myself in this situation and since I haven’t been able to find any resources on how to do this I decided to put this knowledge out there. With that being said I wish you good luck in recovering that file.

With that being said let’s jump into it!


1. Identify What’s Inside Your .webex File#

First, check what kind of file you’re actually dealing with. Webex sometimes saves recordings as disguised MP4s.

ffprobe -v error -show_format -show_streams input.webex

WARNING: ALWAYS WORK ON A COPY OF THE FILE AND NEVER ON THE ORIGINAL!!!

In this case I’ve named my copy input.webex.

If you see an error like:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x70ac38000] moov atom not found
input.webex: Invalid data found when processing input

That’s actually good news—the video data likely exists, but the MP4 moov atom (the metadata header) is missing or damaged.


2. Locate the MP4 Data Inside the .webex File#

Search for the ftyp and mdat markers that define the start of an MP4 container.

grep -aob 'ftyp' input.webex
grep -aob 'mdat' input.webex | head

Example output:

4:ftyp
164:mdat

Write down the first number from the ftyp result (4 in this case), it’s your MP4 starting offset.


3. Extract the MP4 Bytes#

Use dd to carve out the actual MP4 data starting at the offset you found.

dd may not be installed on your system if you’re on a Windows machine. This will probably be reoccurring since I’m working on macOS. Since you’ve made it this far without panicking I’ll assume you have the knowledge on how to install your own tools.

OFFSET=4
sudo dd if=input.webex of=broken.mp4 bs=1 skip=$OFFSET

This creates broken.mp4, which likely still lacks a proper header but contains your raw video and audio streams.


4. Prepare a Reference MP4#

Find a working MP4 recorded by Webex using the same settings (same resolution, codec, and framerate) or very similar. This will serve as the template for the repair process.

Name it reference.mp4 and place it in the same directory as broken.mp4.


5. Run untrunc in Docker#

The easiest way to use untrunc is via Docker, using the repo’s Dockerfile.

Clone the repo from GitHub

If you’re on Windows the repo has precompiled binaries you may use, making this step superfluous.

Build the image with:

docker build -t untrunc .
docker image prune --filter label=stage=intermediate -f

Now run it, mounting the current directory:

docker run -v ~/Videos/:/mnt untrunc /mnt/reference.mp4 /mnt/broken.mp4

Replace ~/Videos with your files’ directory

This creates a new file named something like broken_fixed.mp4 inside your current folder.


6. Verify and Re-Mux the Result#

Use ffprobe to inspect the recovered file:

ffprobe -v error -show_format -show_streams broken_fixed.mp4

If you see both video and audio streams, congratulations — the file has been successfully reconstructed!

Optionally, you can re-mux to clean up timestamps and ensure full compatibility:

I my experience HandBrake worked best to remux these files and still have some partially corrupt data visible. Alternatively there’s a ffmpeg command below.

ffmpeg -y -i broken_fixed.mp4 -c copy recovered_final.mp4

Tips & Notes#

  • Always work on a copy of your original .webex file.

  • The ftyp offset must be correct—if unsure, try a few candidates.

  • If untrunc still fails, try FFmpeg’s timestamp regeneration:

    ffmpeg -fflags +genpts -i broken.mp4 -c:v copy -c:a copy rebuilt.mp4
    
  • Keep your recovered file backed up separately.

  • If your video player crashes opening the recovered file, try using VLC.


Summary#

Step Action
1 Check for moov atom not found error
2 Locate ftyp offset
3 Extract MP4 portion with dd
4 Gather reference MP4
5 Run untrunc in Docker
6 Verify and re-mux

With these steps, you can recover most Webex recordings without access to Webex itself using entirely open-source tools.

Happy recovering!

— KMiguel