Skip to main content
1 of 2
slhck
  • 1.1k
  • 1
  • 10
  • 25

If you have ffprobe installed:

ffprobe -loglevel quiet -show_streams -show_entries stream=index -of csv <input> | wc -l

This will output one line per stream, and count the number of lines with wc. You can also filter for video or audio streams by adding -select_streams v or -select_streams a, respectively. See the manual for more details.

If you do not have ffprobe, ffmpeg can be used too, but in a slightly less robust way (i.e., this may break if the output format changes or something contains the words "Stream #" in the output):

ffmpeg -i <input> 2>&1 | grep "Stream #" | wc -l
slhck
  • 1.1k
  • 1
  • 10
  • 25