Opened 12 years ago

Closed 11 years ago

#1727 closed defect (fixed)

volumedetect filter doesn't work with -t

Reported by: dave rice Owned by:
Priority: normal Component: avfilter
Version: git-master Keywords: volumedetect
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description

Summary of the bug:

The volumedetect filter doesn't seem to work if -t is used. I'd like to use volumedetect to analyze the first N seconds of a video rather than the whole file, but if I use -t than there is no output to the volumedetect filter.

How to reproduce:

Without -t

ffmpeg -i audio.wav -af volumedetect -f null -
ffmpeg version 0.11.1.git Copyright (c) 2000-2012 the FFmpeg developers
  built on Aug 19 2012 22:28:01 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --host-cflags='-Os -w -pipe -march=core2 -mmacosx-version-min=10.7' --host-ldflags='-L/usr/local/Cellar/libtool/2.4.2/lib -L/usr/local/Cellar/automake/1.12.2/lib -L/usr/local/Cellar/autoconf/2.69/lib -L/usr/local/Cellar/gettext/0.18.1.1/lib -L/usr/local/lib -L/usr/X11/lib' --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable-libopenjpeg
  libavutil      51. 70.100 / 51. 70.100
  libavcodec     54. 53.100 / 54. 53.100
  libavformat    54. 25.104 / 54. 25.104
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3. 11.101 /  3. 11.101
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[wav @ 0x7fb30883d800] max_analyze_duration 5000000 reached at 5013333
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'audio.wav':
  Duration: 00:00:10.00, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf54.25.104
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le -> pcm_s16le)
Press [q] to stop, [?] for help
[Parsed_volumedetect_0 @ 0x7fb308420580] n_samples: 960800
[Parsed_volumedetect_0 @ 0x7fb308420580] mean_volume: -51.3 dB
[Parsed_volumedetect_0 @ 0x7fb308420580] max_volume: -33.9 dB
[Parsed_volumedetect_0 @ 0x7fb308420580] histogram_33db: 3
[Parsed_volumedetect_0 @ 0x7fb308420580] histogram_34db: 43
[Parsed_volumedetect_0 @ 0x7fb308420580] histogram_35db: 88
[Parsed_volumedetect_0 @ 0x7fb308420580] histogram_36db: 280
[Parsed_volumedetect_0 @ 0x7fb308420580] histogram_37db: 667
size=       0kB time=00:00:10.00 bitrate=   0.0kbits/s    
video:0kB audio:1877kB subtitle:0 global headers:0kB muxing overhead -100.000000%

With -t

ffmpeg -i audio.wav -t 2 -af volumedetect -f null -
ffmpeg version 0.11.1.git Copyright (c) 2000-2012 the FFmpeg developers
  built on Aug 19 2012 22:28:01 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-libfreetype --cc=/usr/bin/gcc-4.2 --host-cflags='-Os -w -pipe -march=core2 -mmacosx-version-min=10.7' --host-ldflags='-L/usr/local/Cellar/libtool/2.4.2/lib -L/usr/local/Cellar/automake/1.12.2/lib -L/usr/local/Cellar/autoconf/2.69/lib -L/usr/local/Cellar/gettext/0.18.1.1/lib -L/usr/local/lib -L/usr/X11/lib' --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libass --enable-libvo-aacenc --enable-libopenjpeg
  libavutil      51. 70.100 / 51. 70.100
  libavcodec     54. 53.100 / 54. 53.100
  libavformat    54. 25.104 / 54. 25.104
  libavdevice    54.  2.100 / 54.  2.100
  libavfilter     3. 11.101 /  3. 11.101
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 15.100 /  0. 15.100
  libpostproc    52.  0.100 / 52.  0.100
[wav @ 0x7ff10103d800] max_analyze_duration 5000000 reached at 5013333
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from 'audio.wav':
  Duration: 00:00:10.00, bitrate: 1536 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf54.25.104
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le -> pcm_s16le)
Press [q] to stop, [?] for help
size=       0kB time=00:00:02.00 bitrate=   0.0kbits/s    
video:0kB audio:376kB subtitle:0 global headers:0kB muxing overhead -100.000000%

Change History (2)

comment:1 by Carl Eugen Hoyos, 12 years ago

Reproduced by developer: set
Status: newopen

comment:2 by Stefano Sabatini, 11 years ago

Analyzed by developer: set
Resolution: fixed
Status: openclosed

Should be fixed in:

commit 48ec8b25a7deb1a12cd06a064d2bc16440bcbe92
Author: Nicolas George <nicolas.george@normalesup.org>
Date:   Wed Oct 17 19:42:20 2012 +0200

    lavfi/af_volumedetect: print stats in uninit().
    
    If the stats are printed when request_frame on the input
    returns EOF, then they are never printed if the filter is
    not flushed, in particular when using the -t ffmpeg option.
    
    Fix trac ticket #1727.
Note: See TracTickets for help on using tickets.