Opened 12 years ago
Closed 12 years ago
#3708 closed defect (fixed)
Incorrect duration shown for wav file?
| Reported by: | broham | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avformat |
| Version: | git-master | Keywords: | wav duration regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Summary of the bug:
I have a wav file that has the incorrect duration in the file properties (in windows Right Click > Properties > Click Details tab) and when I get the duration it shows the incorrect one from the file properties. If I convert the file to an MP3 and then get the duration it shows correctly.
Why is the duration on the wav file incorrect?
Below is how I am getting the duration:
ffprobe test.wav
ffprobe version 2.2.2 Copyright (c) 2007-2014 the FFmpeg developers
built on May 7 2014 16:26:38 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libavresample 1. 2. 0 / 1. 2. 0
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, wav, from 'test.wav':
Duration: 00:00:02.52, bitrate: 13228 kb/s
Stream #0:0: Audio: gsm_ms (1[0][0][0] / 0x0031), 8000 Hz, mono, s16, 13 kb/s
Change History (16)
comment:1 by , 12 years ago
| Component: | ffprobe → undetermined |
|---|
follow-up: 3 comment:2 by , 12 years ago
Here is the output for: ffmpeg -i test.wav -f null -
ffmpeg version 2.2.2 Copyright (c) 2000-2014 the FFmpeg developers
built on May 7 2014 16:26:38 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
libavutil 52. 66.100 / 52. 66.100
libavcodec 55. 52.102 / 55. 52.102
libavformat 55. 33.100 / 55. 33.100
libavdevice 55. 10.100 / 55. 10.100
libavfilter 4. 2.100 / 4. 2.100
libavresample 1. 2. 0 / 1. 2. 0
libswscale 2. 5.102 / 2. 5.102
libswresample 0. 18.100 / 0. 18.100
libpostproc 52. 3.100 / 52. 3.100
Input #0, wav, from 'test.wav':
Duration: 00:00:02.52, bitrate: 13228 kb/s
Stream #0:0: Audio: gsm_ms (1[0][0][0] / 0x0031), 8000 Hz, mono, s16, 13 kb/s
Output #0, null, to 'pipe:':
Metadata:
encoder : Lavf55.33.100
Stream #0:0: Audio: pcm_s16le, 8000 Hz, mono, s16, 128 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (gsm_ms -> pcm_s16le)
Press [q] to stop, [?] for help
size=N/A time=00:42:44.16 bitrate=N/A
video:0kB audio:40065kB subtitle:0 data:0 global headers:0kB muxing overhead -100.000053%
I tried to attach the problem file but it was too large. Can I email it to you?
comment:3 by , 12 years ago
Replying to broham:
I tried to attach the problem file but it was too large. Can I email it to you?
No, please either upload it to http://www.datafilehost.com/ (100MB limit) or read https://ffmpeg.org/bugreports.html (NO limit).
comment:5 by , 12 years ago
| Component: | undetermined → avformat |
|---|---|
| Keywords: | wav duration regression added |
| Priority: | normal → important |
| Reproduced by developer: | set |
| Version: | unspecified → git-master |
If there is an issue, it is a regression since f9329946
But I wonder if the file simply contains an invalid duration, do you know how it was created?
comment:9 by , 12 years ago
You posted a command line above that shows the actual length of the file and I posted a commit that you could revert to undo the detection of the length written in the wav file.
comment:10 by , 12 years ago
Ahh, I see now, thanks. Do you know if there is anywhere to download the binaries for this rather than the source?
comment:11 by , 12 years ago
I tried looking here, but it looks like it only goes back to 5/2011 and f9329946 looks to be from 1/2011
follow-up: 13 comment:12 by , 12 years ago
So i pulled f9329946 from github, built it and ran it against the problem file but I am getting the same results. Output below:
ffprobe test.wav
FFprobe version git-f932994, Copyright (c) 2007-2011 the FFmpeg developers
built on Jun 11 2014 08:59:16 with clang 5.1 (clang-503.0.38)
configuration:
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 / 52.93. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.73. 1 / 1.73. 1
libswscale 0.12. 0 / 0.12. 0
[wav @ 0x7f82fb008000] max_analyze_duration reached
Input #0, wav, from 'test.wav':
Duration: 00:00:02.52, bitrate: 13228 kb/s
Stream #0.0: Audio: gsm_ms, 8000 Hz, 1 channels, s16, 13 kb/s
Any idea why it still wouldn't be working?
comment:13 by , 12 years ago
Replying to broham:
So i pulled f9329946 from github, built it and ran it against the problem file but I am getting the same results.
Which is expected since this is a regression since f9329946
This is an old commit, so the better approach would be to disable reading the fact chunk, the commit should show you what to do.
comment:14 by , 12 years ago
Hrrm, ok. So i'm a little confused. Would I be changing the hunk of code from here: https://github.com/FFmpeg/FFmpeg/commit/f9329946
back to what it was before and rebuilding? Or is there something I can specify in the command line that will disable reading the fact chunk?
comment:15 by , 12 years ago
So I'm getting the exact same problem with an MP3 file. Is there a way to tell ffprobe/ffmpeg to ignore the file properties for all file types?
comment:16 by , 12 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |



Please current FFmpeg git head, please run
ffmpeg -i test.wav -f null -(and post the output) and please provide the file test.wav.