Esempio n. 1
0
def main(output, background, overlay,
        vlc='',
        angle=0, position_x=0, position_y=0,
        maskfile='', width=0, height=0,
        watch=False, segfaults=20, timeout=120,
        verbose=False, debug=False, remote=''):
    """
    Overlay videos with alpha compositing and rotation using VLM from VLC.

    @param vlc -V --vlc path to vlc executable
    @param position_x -x --position-x x-position of the overlay (default: 0)
    @param position_y -y --position-y y-position of the overlay (default: 0)
    @param width -W --width width of the overlay (default: original size)
    @param height -H --height height of the overlay (default: original size)
    @param angle -a --angle which angle to rotate the overlay (default: 0)
    @param maskfile -m --mask overlay alpha mask image (optional)
    @param watch -w --watch whether to display the result in vlc
                                                            (default: false)
    @param segfaults -s --segfaults how many segfaults to compensate for
                                                                (default: 20)
    @param timeout -t --timeout when to timeout and kill VLC (default: 120s)
    @param verbose -v --verbose Use this if something goes wrong:
                                a) doesn't suppress stdout and stderr of vlc
                                b) sends '--verbose=2' to vlc
                                c) doesn't send '--quiet' to vlc
    @param debug -d --debug Use this if something goes wrong:
                                a) log vlc command (even in non-verbose mode)
                                b) keep temporary files (vlm, vlc log, mask)
    @param remote -r --remote Use remote video processing service at given url

    """
    setup_logging()
    if verbose:
        logger.setLevel(logging.DEBUG)
    logger.info("zt.vlc.twister starting")
    options = locals()
    options.update({
        'output': output,
        'background': background,
        'overlay': overlay,
    })

    if verbose or debug:
        media_info('background', options['background'])
        media_info('overlay', options['overlay'])

    twister = VideoTwisterOverlay(**options)
    twister.start()
Esempio n. 2
0
def main(port=8001, verbose=False):
    """
    Overlay videos with alpha compositing and rotation using VLM from VLC.

    @param port -p --port Port to listen on
    @param verbose -v --verbose More output

    """
    loglevel = verbose and logging.DEBUG or logging.INFO
    setup_logging(loglevel)
    logger.setLevel(loglevel)
    # TODO: make this configurable to decouple
    # zt.net.webcommand completely from zt.vlc
    __import__('zt.vlc.twister')
    logger.info("Starting web server on port 8001")
    #app = get_app(globals())
    app = get_app({'WebTwister': WebTwister})
    make_server('', int(port), app).serve_forever()
Esempio n. 3
0
# limitations under the License.
#
##############################################################################

import os
import sys
import logging
import inspect
from decorator import decorator
from tempfile import NamedTemporaryFile
from pprint import pprint, pformat
from zt.net.mime import get_message_multipart
from zt.net.http import posturl

from zt.util.log import setup_logging
setup_logging()
logger = logging.getLogger(__name__)


def proxify(url_option='', filenames=None, retval=None):

    filenames = filenames or []
    retval = retval or {}

    def inner(f, *args, **kwargs):
        argnames, varargs, varkw, defaults = inspect.getargspec(f)
        if defaults:
            positional_params = argnames[:-1 * len(defaults)]
            kw_params = argnames[-1 * len(defaults):]
        else:
            positional_params = argnames