Thanks Paul, Eric, and Ralf,
Eric --- your command certainly works on my problematic sound file, thanks!
Paul --- thanks for pointing out sndfile-info. This also works, and
puts the results on stdout. (Presumably sox wants to write to stderr
to because it wants to reserve stdout for samples?)
Ralf --- thanks for pointing out exiftool. I had no idea it dealt
with sound files. Now, in my particular case, it didn't work because
my sound file is au/snd, and it doesn't know that format, so it
interpreted it as a (huge) jpeg. I think the reason that soxi can be
correct for some formats but not others is that the flow of control
goes through different paths depending on the file type, and some of
the handlers may be more capable than others (or at least have
different weak spots). Thus a problem showed up with Eric's flac and
my au/snd, but not your wav. (Pure conjecture here!)
Thanks again everybody for educating me!!
dan
On Thu, Aug 18, 2016 at 5:13 AM, Paul Davis <paul(a)linuxaudiosystems.com> wrote:
sndfile_info checks both the header and the file
contents.
On Wed, Aug 17, 2016 at 11:50 PM, Eric Wong <e(a)80x24.org> wrote:
Dan Hitt <dan.hitt(a)gmail.com> wrote:
I'm looking for a command line tool that can
determine the length
(duration in seconds) of a sound file using more than just the file
header.
Try: sox $FILE -n stats 2>&1 | awk '/^Length / {print $2}'
That will decode the entire file and run it through the
sox "stats" effect.
I just tried it on a 28MB FLAC file (3:49.80s) truncated to 5MB
with:
dd if=$ORIG of=truncated.flac bs=5M count=1
And was able to reproduce soxi showing the the length as
3:49.80 but "sox .. -n stats" showed only 44.304s
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user(a)lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user