@classmethod
def _create_filter_string(cls, hflip=False, vflip=False, rotate=False,
    watermark=None, pixfmt='yuv420p'):
    """
		Creates an ffmpeg filter string based on input parameters.

		Arguments:
		    hflip (bool): Perform horizontal flip on input material.
		    vflip (bool): Perform vertical flip on input material.
		    rotate (bool): Perform 90° CCW rotation on input material.
		    watermark (str): Path to watermark to apply to lower left corner.
		    pixfmt (str): Pixel format to use, defaults to "yuv420p" which should usually fit the bill

		Returns:
		    (str or None): filter string or None if no filters are required
		"""
    filters = ['format={}'.format(pixfmt)]
    if hflip:
        filters.append('hflip')
    if vflip:
        filters.append('vflip')
    if rotate:
        filters.append('transpose=2')
    watermark_filter = None
    if watermark is not None:
        watermark_filter = (
            'movie={} [wm]; [{{input_name}}][wm] overlay=10:main_h-overlay_h-10'
            .format(watermark))
    filter_string = None
    if len(filters) > 0:
        if watermark_filter is not None:
            filter_string = '[in] {} [postprocessed]; {} [out]'.format(','.
                join(filters), watermark_filter.format(input_name=
                'postprocessed'))
        else:
            filter_string = '[in] {} [out]'.format(','.join(filters))
    elif watermark_filter is not None:
        filter_string = watermark_filter.format(input_name='in') + ' [out]'
    return filter_string
