text: #!/usr/bin/env python
  
  
  class BaseFormat(object):
      """
      Base format class.
  
      Supported formats are: ogg, avi, mkv, webm, flv, mov, mp4, mpeg
      """
  
      format_name = None
      ffmpeg_format_name = None
  
      def parse_options(self, opt):
          if 'format' not in opt or opt.get('format') != self.format_name:
              raise ValueError('invalid Format format')
          return ['-f', self.ffmpeg_format_name]
  
  
  class OggFormat(BaseFormat):
      """
      Ogg container format, mostly used with Vorbis and Theora.
      """
      format_name = 'ogg'
      ffmpeg_format_name = 'ogg'
  
  
  class AviFormat(BaseFormat):
      """
      Avi container format, often used vith DivX video.
      """
      format_name = 'avi'
      ffmpeg_format_name = 'avi'
  
  
  class MkvFormat(BaseFormat):
      """
      Matroska format, often used with H.264 video.
      """
      format_name = 'mkv'
      ffmpeg_format_name = 'matroska'
  
  
  class WebmFormat(BaseFormat):
      """
      WebM is Google's variant of Matroska containing only
      VP8 for video and Vorbis for audio content.
      """
      format_name = 'webm'
      ffmpeg_format_name = 'webm'
  
  
  class FlvFormat(BaseFormat):
      """
      Flash Video container format.
      """
      format_name = 'flv'
      ffmpeg_format_name = 'flv'
  
  
  class MovFormat(BaseFormat):
      """
      Mov container format, used mostly with H.264 video
      content, often for mobile platforms.
      """
      format_name = 'mov'
      ffmpeg_format_name = 'mov'
  
  
  class Mp4Format(BaseFormat):
      """
      Mp4 container format, the default Format for H.264
      video content.
      """
      format_name = 'mp4'
      ffmpeg_format_name = 'mp4'
  
  
  class MpegFormat(BaseFormat):
      """
      MPEG(TS) container, used mainly for MPEG 1/2 video codecs.
      """
      format_name = 'mpg'
      ffmpeg_format_name = 'mpegts'
  
  
  class Mp3Format(BaseFormat):
      """
      Mp3 container, used audio-only mp3 files
      """
      format_name = 'mp3'
      ffmpeg_format_name = 'mp3'
  
  
  format_list = [
      OggFormat, AviFormat, MkvFormat, WebmFormat, FlvFormat,
      MovFormat, Mp4Format, MpegFormat, Mp3Format
  ]
  