docs: def parse_streams(self):
          """
          Try to parse all input streams from file
          """
          logger.debug("Parsing streams of {}".format(self.input_file))
  
          cmd = [
              self.ffmpeg_normalize.ffmpeg_exe, '-i', self.input_file,
              '-c', 'copy', '-t', '0', '-map', '0',
              '-f', 'null', NUL
          ]
  
          cmd_runner = CommandRunner(cmd)
          cmd_runner.run_command()
          output = cmd_runner.get_output()
  
          logger.debug("Stream parsing command output:")
          logger.debug(output)
  
          output_lines = [line.strip() for line in output.split('\n')]
  
          for line in output_lines:
  
              if not line.startswith('Stream'):
                  continue
  
              stream_id_match = re.search(r'#0:([\d]+)', line)
              if stream_id_match:
                  stream_id = int(stream_id_match.group(1))
                  if stream_id in self._stream_ids():
                      continue
              else:
                  continue
  
              if 'Audio' in line:
                  logger.debug("Found audio stream at index {}".format(stream_id))
                  sample_rate_match = re.search(r'(\d+) Hz', line)
                  sample_rate = int(sample_rate_match.group(1)) if sample_rate_match else None
                  bit_depth_match = re.search(r's(\d+)p?,', line)
                  bit_depth = int(bit_depth_match.group(1)) if bit_depth_match else None
                  self.streams['audio'][stream_id] = AudioStream(self, stream_id, sample_rate, bit_depth)
  
              elif 'Video' in line:
                  logger.debug("Found video stream at index {}".format(stream_id))
                  self.streams['video'][stream_id] = VideoStream(self, stream_id)
  
              elif 'Subtitle' in line:
                  logger.debug("Found subtitle stream at index {}".format(stream_id))
                  self.streams['subtitle'][stream_id] = SubtitleStream(self, stream_id)
  
          if not self.streams['audio']:
              raise FFmpegNormalizeError(
                  "Input file {} does not contain any audio streams"
                  .format(self.input_file))
  
          if os.path.splitext(self.output_file)[1].lower() in ['.wav', '.mp3', '.aac']:
              logger.warning(
                  "Output file only supports one stream. "
                  "Keeping only first audio stream."
              )
              first_stream = list(self.streams['audio'].values())[0]
              self.streams['audio'] = {first_stream.stream_id: first_stream}
              self.streams['video'] = {}
              self.streams['subtitle'] = {}