Since I use both whitespace and ' I had to escape the ' and use -safe 0:
The concat.txt
Code: Select all
file 'Cross of Changes--01--Second Chapter.mp3'
file 'Cross of Changes--02--Eyes of truth.mp3'
file 'Cross of Changes--03--Return to innocence.mp3'
file 'Cross of Changes--04--I love you... I'\''ll kill you.mp3'
file 'Cross of Changes--06--Dream of the Dolphin.mp3'
file 'Cross of Changes--07--Age of loneliness -Carlys song.mp3'
file 'Cross of Changes--08--Out of the deep.mp3'
file 'Cross of Changes--09--Cross of Changes.mp3'
the command used:
Code: Select all
ffmpeg -v error -safe 0 -f concat -i concat.txt -c copy Cross\ of\ Changes.mp3
Sadly, it gives quite some errors or warnings like this
Code: Select all
mp3 @ 0x1848e00] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 94198765 >= 94188916
and when switching at the time stamp where the new file should begin mpv gives an error and there is an audible pause due to the error:
Code: Select all
guest@porteus:/mysound/blues+rock+pop/Enigma$ mpv Cross\ of\ Changes.mp3
(+) Audio --aid=1 (mp3 2ch 44100Hz)
AO: [pulse] 44100Hz stereo 2ch float
A: 00:02:15 / 00:38:04 (6%)
[ffmpeg/audio] mp3float: Header missing
Error decoding audio.
A: 00:02:27 / 00:38:04 (6%)
Exiting... (Quit)
And here the transition moment error in ffplay:
Code: Select all
guest@porteus:/mysound/blues+rock+pop/Enigma$ ffplay Cross\ of\ Changes.mp3
[mp3 @ 0x7f2f08000c80] Skipping 2048 bytes of junk at 462.B f=0/0
Input #0, mp3, from 'Cross of Changes.mp3':
Metadata:
encoder : Lavf58.76.100
Duration: 00:38:04.70, start: 0.011995, bitrate: 127 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 127 kb/s
Metadata:
encoder : Lavf
[mp3float @ 0x7f2f080068c0] Header missing 0KB sq= 0B f=0/0
139.06 M-A: -0.000 fd= 0 aq= 16KB vq= 0KB sq= 0B f=0/0
The files that are merged at that point are:
Code: Select all
Cross of Changes--01--Second Chapter.mp3
Cross of Changes--02--Eyes of truth.mp3
ffprope says about these:
Code: Select all
guest@porteus:/mysound/blues+rock+pop/Enigma$ ffprobe Cross\ of\ Changes--01--Second\ Chapter.mp3
[wav @ 0x1406400] ignoring wrong sample_count 51971
[mp3float @ 0x1409140] Header missing
[wav @ 0x1406400] Estimating duration from bitrate, this may be inaccurate
Input #0, wav, from 'Cross of Changes--01--Second Chapter.mp3':
Metadata:
artist : Enigma
title : mea culpa
track : 4
genre : Fusion
album : Cross of Changes
date : 1993
Duration: 00:02:14.42, bitrate: 128 kb/s
Stream #0:0: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s
guest@porteus:/mysound/blues+rock+pop/Enigma$ ffprobe Cross\ of\ Changes--02--Eyes\ of\ truth.mp3
[wav @ 0xd78400] ignoring wrong sample_count 223146
[mp3float @ 0xd7b340] Header missing
[wav @ 0xd78400] Estimating duration from bitrate, this may be inaccurate
Input #0, wav, from 'Cross of Changes--02--Eyes of truth.mp3':
Metadata:
artist : Enigma
title : mea culpa
track : 4
genre : Fusion
album : Cross of Changes
date : 1993
Duration: 00:07:13.71, bitrate: 128 kb/s
Stream #0:0: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s
As you can see, both are 44100 Hz, stereo, fltp, 128 kb/s
If so, then why did it fail? Why the error when decoding?

Could the "ignoring wrong sample_count" and "Header missing" be the issue?
If so, how to fix that?
Added in 13 minutes 25 seconds:
Maybe "MP3 Diags" is the solution for my issue, currently reading
https://www.ghacks.net/2009/11/24/use-m ... ollection/ …
Added in 11 minutes 26 seconds:
unfortunately mp3diag has quite the dependencies missing
Code: Select all
$ ldd /usr/bin/mp3diags |grep not
libboost_serialization.so.1.66.0 => not found
libboost_program_options.so.1.66.0 => not found
libQt5Widgets.so.5 => not found
libQt5Gui.so.5 => not found
libQt5Xml.so.5 => not found
libQt5Core.so.5 => not found
Postponing it for now…
The recent mp3diag I found was this:
https://ftp.lysator.liu.se/pub/opensuse ... x86_64.rpm
No mp3diag found for Slackware-current
Added in 7 minutes 12 seconds:
Hopefully these work and are enough:
Code: Select all
libQt5Core5-5.12.7-4.12.2.x86_64.rpm
libQt5Gui5-5.12.7-4.12.2.x86_64.rpm
libQt5Widgets5-5.12.7-4.12.2.x86_64.rpm
libQt5Xml5-5.12.7-4.12.2.x86_64.rpm
libboost_program_options1_66_0-1.66.0-10.1.x86_64.rpm
libboost_serialization1_66_0-1.66.0-10.1.x86_64.rpm
Added in 3 minutes 23 seconds:
Or maybe these since the files are both newer than the non-legacy ones above…
libboost_program_options_legacy-1.66.0-1.4.1.x86_64.rpm
libboost_serialization_legacy-1.66.0-1.4.1.x86_64.rpm