I am trying to split a very large (70 hours) mp3 file into smaller files. My first step is the get the timestamps using the silencedetect command in ffmpeg. It works fine for the first few timestamps, but unfortunately, the results are rounded to six significant digits.
The code I am executing is:
ffmpeg -i input.mp3 -af silencedetect=d=3 -hide_banner -nostats -f null -
My results are:
Input #0, mp3, from 'input.mp3':
Duration: 70:46:05.32, start: 0.050113, bitrate: 64 kb/s
Stream #0:0: Audio: mp3, 22050 Hz, stereo, fltp, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf58.29.100
Stream #0:0: Audio: pcm_s16le, 22050 Hz, stereo, s16, 705 kb/s
Metadata:
encoder : Lavc58.54.100 pcm_s16le
[silencedetect @ 0x5590d08bd700] silence_start: 10.6895
[silencedetect @ 0x5590d08bd700] silence_end: 15.0054 | silence_duration: 4.31587
[silencedetect @ 0x5590d08bd700] silence_start: 446.958
[silencedetect @ 0x5590d08bd700] silence_end: 450.959 | silence_duration: 4.00168
[silencedetect @ 0x5590d08bd700] silence_start: 1168.17
[silencedetect @ 0x5590d08bd700] silence_end: 1172.17 | silence_duration: 4.00694
[silencedetect @ 0x5590d08bd700] silence_start: 1880.8
[silencedetect @ 0x5590d08bd700] silence_end: 1884.8 | silence_duration: 3.99265
...
[silencedetect @ 0x5590d08bd700] silence_start: 123108
[silencedetect @ 0x5590d08bd700] silence_end: 123111 | silence_duration: 3.61946
[silencedetect @ 0x5590d08bd700] silence_start: 123286
[silencedetect @ 0x5590d08bd700] silence_end: 123290 | silence_duration: 4.01646
[silencedetect @ 0x5590d08bd700] silence_start: 124229
[silencedetect @ 0x5590d08bd700] silence_end: 124233 | silence_duration: 4.01846
[silencedetect @ 0x5590d08bd700] silence_start: 124442
[silencedetect @ 0x5590d08bd700] silence_end: 124446 | silence_duration: 4.0298
...
Rounding to the nearest second is not sufficient for my purposes. Ideally, I would like each timestamp to be accurate to the hundredth of a second or something similar. Does anybody know a way to achieve this?