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()
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()
# 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