ayon-core/pype/plugins/publish/validate_ffmpeg_installed.py
2021-02-16 18:24:04 +01:00

34 lines
999 B
Python

import pyblish.api
import os
import subprocess
import pype.lib
try:
import os.errno as errno
except ImportError:
import errno
class ValidateFFmpegInstalled(pyblish.api.ContextPlugin):
"""Validate availability of ffmpeg tool in PATH"""
order = pyblish.api.ValidatorOrder
label = 'Validate ffmpeg installation'
optional = True
def is_tool(self, name):
try:
devnull = open(os.devnull, "w")
subprocess.Popen(
[name], stdout=devnull, stderr=devnull
).communicate()
except OSError as e:
if e.errno == errno.ENOENT:
return False
return True
def process(self, context):
ffmpeg_path = pype.lib.get_ffmpeg_tool_path("ffmpeg")
self.log.info("ffmpeg path: `{}`".format(ffmpeg_path))
if self.is_tool("{}".format(ffmpeg_path)) is False:
self.log.error("ffmpeg not found in PATH")
raise RuntimeError('ffmpeg not installed.')