docs: def exec_cmd(rtsp,cmd):
      '''根据命令执行操作'''
      global CUR_RANGE,CUR_SCALE
      if cmd in ('exit','teardown'):
          rtsp.do_teardown()
      elif cmd == 'pause':
          CUR_SCALE = 1; CUR_RANGE = 'npt=now-'
          rtsp.do_pause()
      elif cmd == 'help':
          PRINT(play_ctrl_help())
      elif cmd == 'forward':
          if CUR_SCALE < 0: CUR_SCALE = 1
          CUR_SCALE *= 2; CUR_RANGE = 'npt=now-'
      elif cmd == 'backward':
          if CUR_SCALE > 0: CUR_SCALE = -1
          CUR_SCALE *= 2; CUR_RANGE = 'npt=now-'
      elif cmd == 'begin':
          CUR_SCALE = 1; CUR_RANGE = 'npt=beginning-'
      elif cmd == 'live':
          CUR_SCALE = 1; CUR_RANGE = 'npt=end-'
      elif cmd.startswith('play'):
          m = re.search(r'range[:\s]+(?P<range>[^\s]+)',cmd)
          if m: CUR_RANGE = m.group('range')
          m = re.search(r'scale[:\s]+(?P<scale>[\d\.]+)',cmd)
          if m: CUR_SCALE = int(m.group('scale'))
  
      if cmd not in ('pause','exit','teardown','help'):
          rtsp.do_play(CUR_RANGE,CUR_SCALE)