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