java – Video is cut after adding 2 watermarks with FFMPEG-KIT

I made a FFMPEG-KIT command to add 2 PNG watermarks to the video and everything went smoothly.

String ffmpegCommand = "-y -i " + videoPath +
            " -i " + watermarkImagePath +
            " -i " + userID +
            " -filter_complex " +
            "\"[0:v][1:v]overlay=x='if(lt(mod(t,10),5),10,W-w-10)':y='if(lt(mod(t,10),5),10,H-h-35)',\"" +
            "\"overlay=x='if(lt(mod(t,10),5),7,W-w-7)':y='if(lt(mod(t,10),5),165,H-h-15)'[out]\"" +
            " -map [out] -map 0:a -c:v libx264 -crf 18 -preset slow -c:a aac " + outputPath;

But for videos that are longer than 20 seconds, the results don’t match the original video, sometimes the videos are only <20 seconds and at random times.

I get this error, how do I fix it?

W/ffmpeg-kit: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb400007c5c1243f0] Packet corrupt (stream = 1, dts = 366976)
W/ffmpeg-kit: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb400007c5c1243f0] .
E/ffmpeg-kit: [NULL @ 0xb400007c6c179400] Invalid NAL unit size (63547 > 20190).
E/ffmpeg-kit: [NULL @ 0xb400007c6c179400] missing picture in access unit with size 20194
W/ffmpeg-kit: /storage/emulated/0/DCIM/android_100394_20230807_162805_5465009.mp4: corrupt input packet in stream 1
E/ffmpeg-kit: [h264 @ 0xb400007c6c210750] Invalid NAL unit size (63547 > 20190).
E/ffmpeg-kit: [h264 @ 0xb400007c6c210750] Error splitting the input into NAL units.
E/ffmpeg-kit: Error while decoding stream #0:1: Invalid data found when processing input

I’ve tried to use this -fflags +discardcorrupt, but the result is still the same. The duration of the video that has been watermarked does not match the original video.

Read more here: Source link