示例#1
0
    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)
示例#2
0
    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