Opened 8 months ago

Closed 8 months ago

Last modified 8 months ago

#7381 closed defect (invalid)

ffprobe slow for many files

Reported by: forthrin Owned by:
Priority: normal Component: undetermined
Version: unspecified Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Using ffprobe -show_streams -print_format json for a lot of files (1000+) is quite slow compared to exiftool which seems almost instantaneous.

Is this because A) the probing code has optimisation potential, or B) mostly because of the overhead because ffprobe doesn't support multiple files per run, ie. you can't do find . -type f -exec ffprobe {} +.

Please clarify A or B, but also regardless, is there any reason why ffprobe shouldn't support multiple files?

ffprobe 4.0.2 on macOS

Change History (7)

comment:1 Changed 8 months ago by richardpl

It is because it decodes each single file.

comment:2 Changed 8 months ago by cehoyos

  • Resolution set to invalid
  • Status changed from new to closed

comment:3 Changed 8 months ago by forthrin

  • Resolution invalid deleted
  • Status changed from closed to reopened

I don't understand your reply. Could you be more specific and explain why ffprobe for many files is slow? Is it simply the overhead of having to launch ffprobe once per file? (B)

comment:4 Changed 8 months ago by cehoyos

  • Resolution set to invalid
  • Status changed from reopened to closed

This is a bug tracker, if you have questions concerning parts of FFmpeg, please use the user mailing list.

comment:5 Changed 8 months ago by forthrin

Where are feature requests posted? Can they be posted here?

comment:6 Changed 8 months ago by mkver

Yes, this is the right place for feature requests.

comment:7 Changed 8 months ago by forthrin

Well, maybe I was unclear, then.

The feature request is support for multiple files per run, ie. find . -type f -exec ffprobe -print_format son -show_streams {} +, as to increase speed when probing thousands of files.

This would mean the output would have to generate an array of probe objects in order to connect the files and the probe data, eg.

[

{"filename": "movie1.mkv", "streams": [ ...]},
{"filename": "movie2.mkv", "streams": [ ...]},
(etc.)

]

Would this be doable? Perhaps you have a better suggestion?

Note: See TracTickets for help on using tickets.