def __init__(self, logger, inputVideoPath): self.Logger = logger self.InternalScreenshotMaker = None if Settings.IsMpvEnabled(): self.InternalScreenshotMaker = Mpv(logger, inputVideoPath) elif Settings.IsMplayerEnabled(): self.InternalScreenshotMaker = Mplayer(logger, inputVideoPath) else: self.InternalScreenshotMaker = Ffmpeg(logger, inputVideoPath)
def __TakeAndUploadScreenshot(self, timeInSeconds, outputImageDirectory): screenshotPath = None if Settings.IsMpvEnabled(): screenshotPath = self.__MakeUsingMpv(timeInSeconds, outputImageDirectory) elif Settings.IsMplayerEnabled(): screenshotPath = self.__MakeUsingMplayer(timeInSeconds, outputImageDirectory) else: screenshotPath = self.__MakeUsingFfmpeg(timeInSeconds, outputImageDirectory) if ImageMagick.IsEnabled(): ImageMagick.OptimizePng(self.Logger, screenshotPath) try: imageUrl = ImageUploader.Upload(self.Logger, imagePath=screenshotPath) finally: os.remove(screenshotPath) return imageUrl