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][1] 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


  [1]: https://ffmpeg.org/ffprobe.html