1

Adding all mp4 file in the directory with FFMPEG .

my usual command:

ffmpeg -f concat -safe 0 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -c copy output.mp4

This shows below problem sometimes.

Now what do i need to do to resolve this problem?

[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783482, current: 16149020; changing to 26783483. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783483, current: 16150020; changing to 26783484. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783484, current: 16151020; changing to 26783485. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783485, current: 16152020; changing to 26783486. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783486, current: 16153020; changing to 26783487. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783487, current: 16154020; changing to 26783488. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783488, current: 16155020; changing to 26783489. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783489, current: 16156020; changing to 26783490. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783490, current: 16157020; changing to 26783491. This may result in incorrect timestamps in the output file.
[mp4 @ 0x556a367c4200] Non-monotonous DTS in output stream 0:0; previous: 26783491, current: 16158020; changing to 26783492. This may result in incorrect timestamps in the output file.

I have tried Multiple solutions:

ffmpeg -safe 0 -f concat -segment_time_metadata 1 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1 -c copy output.mp4
ffmpeg -f concat -safe 0 -use_wallclock_as_timestamps 1 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -acodec copy -vcodec copy output.mp4
ffmpeg -f concat -err_detect ignore_err -safe 0 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -c copy output.mp4
ffmpeg -f concat -safe 0 -i <(for f in ./*.mp4; do echo "file '$PWD/$f'"; done) -filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] concat=n=3:v=1:a=1 [vv] [aa]" -map "[vv]" -map "[aa]" -c copy output.mp4

I have tried from

But none of their solutions worked for me.

0

1 Answer 1

0

This is due to the different configurations/formats of your input files, like fps. You need to convert all the files to the sample configuration.

You can refer to my answer here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.