#!/usr/bin/env python3 import time import traceback import configparser import json import shlex import sys import subprocess import os from workerapi import WorkerApi config = configparser.ConfigParser() config.read('config.ini') api = WorkerApi(config['API']['BASE'],config['API']['KEY']) id = int(sys.argv[1]) jobtype = sys.argv[2] priority = sys.argv[3] data = json.loads(sys.argv[4]) print(sys.argv) if (jobtype == 'thumbnail'): inputfile = config['MAIN']['VIDEOS_RELEASED']+'/'+data['path'] outputfile = config['MAIN']['VIDEOS_RELEASED']+'/'+config['thumbnail']['folder']+'/'+'l_'+str(data['lectureid'])+'.jpg' api.job_ping(id=id) try: duration = float(subprocess.check_output(["ffprobe", "-v", "error", "-show_entries", "format=duration", "-of", "default=noprint_wrappers=1:nokey=1", inputfile])) except: duration = 0 api.job_ping(id=id) if subprocess.call(["ffmpeg", "-loglevel", "error", "-y", "-ss", str(duration*0.4), "-i", inputfile, "-vf", "scale=640:-1", "-frames:v", "1", outputfile]) == 0: api.job_ping(id=id,state='finished') else: api.job_ping(id=id,state='failed') print('failed')