Hi, Vincent, Thank you for your suggestion.
Let me explain the real case: I have many MP4 files which lost some data in the tail, which make them not playable. I analyze these files manually and find the ftyp and moov boxes and their child boxes are all OK. But part of the data in mdat box are lost, which corresponding to some packet data only, which is <= 5% of the total packets. I try to use the following command: ffmpeg -i old.mp4 -c copy new.mp4 but always get the following result: ffmpeg version 7.0.2 Copyright (c) 2000-2024 the FFmpeg developers built with gcc 14.1.0 (Rev3, Built by MSYS2 project) configuration: --enable-shared libavutil 59. 8.100 / 59. 8.100 libavcodec 61. 3.100 / 61. 3.100 libavformat 61. 1.100 / 61. 1.100 libavdevice 61. 1.100 / 61. 1.100 libavfilter 10. 1.100 / 10. 1.100 libswscale 8. 1.100 / 8. 1.100 libswresample 5. 1.100 / 5. 1.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 00158b00] stream 1, contradictionary STSC and STCO [mov,mp4,m4a,3gp,3g2,mj2 @ 00158b00] error reading header [in#0 @ 00158840] Error opening input: Invalid data found when processing input Error opening input file old.mp4. Error opening input files: Invalid data found when processing input So I wrote a Test app to parse all the data in the old.mp4 and read all the boxes(except for mdat box), and get all the existing packets. Now I want to reassemble them back into a valid MP4 file. _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".