Opened 11 years ago

Last modified 9 years ago

#2493 new enhancement

support filter options within ffprobe

Reported by: dave rice Owned by:
Priority: normal Component: ffprobe
Version: git-master Keywords: ffrprobe, filters, metadata
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no


Summary of the bug:

This ticket is inspired by comments by Nicolas George at this post:

I'd like to make use of metadata from filters within ffprobe without having to use amovie|movie to provide the input.

For instance:

ffprobe 2>/dev/null -i 038Robin.wav -af ebur128=metadata=1 -show_frames -show_format


ffprobe -i 038Robin.wav -af ebur128=metadata=1 -show_frames -show_format
ffprobe version 1.1.git Copyright (c) 2007-2013 the FFmpeg developers
  built on Apr 13 2013 10:04:18 with Apple clang version 3.1 (tags/Apple/clang-318.0.61) (based on LLVM 3.1svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-ffplay --enable-libcaca
  libavutil      52. 26.100 / 52. 26.100
  libavcodec     55.  2.100 / 55.  2.100
  libavformat    55.  2.100 / 55.  2.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 53.101 /  3. 53.101
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Failed to set value 'ebur128=metadata=1' for option 'af': Option not found

The workaround seems to be to use lavfi as the input:

ffprobe 2>/dev/null -f lavfi amovie=038Robin.wav,ebur128=metadata=1 -show_frames -show_format

However although the latter commands provides the frame metadata that I want, the data provided by -show_format refers to lavfi and not the original file input.

Is it feasible to support -vf and -af in ffprobe to allow something like:

ffprobe -i 038Robin.wav -af ebur128=metadata=1 -show_frames -show_format

Change History (4)

comment:1 by Elon Musk, 11 years ago

afaik, ffprobe is for probing and not filtering audio. (end ebur128 is audio filter - even if it does not modify input audio)
imho it would be better if -show_* stuff is provided for ffmpeg too.

comment:2 by t.rapp, 9 years ago

As "ffprobe -f lavfi movie=..." doesn't seem to support seeking (e.g. "-read_intervals 30%+2") it would be great if filter options could be specified explicitly in ffprobe.

My use-case is detecting frame interlaced property using "idet" filter at specific seek points (I don't want to scan the whole, large input file). So it would be nice if something like the following command would work:

ffprobe -i some-input-file.avi -filter:v idet -show_entries frame_tags \
  -read_intervals %+2,05:00%+2,10:00%+2,20:00%+2

comment:3 by t.rapp, 9 years ago

Cc: added

comment:4 by t.rapp, 9 years ago

Cc: removed
Note: See TracTickets for help on using tickets.