code: def parse_volumedetect_stats(self):
          
          logger.info(
              "Running first pass volumedetect filter for stream {}".format(self.stream_id)
          )
  
          filter_str = '[0:{}]volumedetect'.format(self.stream_id)
  
          cmd = [
              self.media_file.ffmpeg_normalize.ffmpeg_exe, '-nostdin', '-y',
              '-i', self.media_file.input_file,
              '-filter_complex', filter_str,
              '-vn', '-sn', '-f', 'null', NUL
          ]
  
          cmd_runner = CommandRunner(cmd)
          for progress in cmd_runner.run_ffmpeg_command():
              yield progress
          output = cmd_runner.get_output()
  
          logger.debug("Volumedetect command output:")
          logger.debug(output)
  
          mean_volume_matches = re.findall(r"mean_volume: ([\-\d\.]+) dB", output)
          if mean_volume_matches:
              self.loudness_statistics['mean'] = float(mean_volume_matches[0])
          else:
              raise FFmpegNormalizeError(
                  "Could not get mean volume for {}".format(self.media_file.input_file)
              )
  
          max_volume_matches = re.findall(r"max_volume: ([\-\d\.]+) dB", output)
          if max_volume_matches:
              self.loudness_statistics['max'] = float(max_volume_matches[0])
          else:
              raise FFmpegNormalizeError(
                  "Could not get max volume for {}".format(self.media_file.input_file)
              )
docs: Use ffmpeg with volumedetect filter to get the mean volume of the input file.