mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 09:02:15 -06:00
better autocorrect for poor ffmpeg builds
This commit is contained in:
parent
9d2e390b6a
commit
f1e0c44bdd
|
@ -45,7 +45,7 @@ class Ico(object):
|
||||||
pb = ImageDraw.Draw(img)
|
pb = ImageDraw.Draw(img)
|
||||||
tw, th = pb.textsize(ext)
|
tw, th = pb.textsize(ext)
|
||||||
pb.text(((w - tw) // 2, (h - th) // 2), ext, fill="#" + c[6:])
|
pb.text(((w - tw) // 2, (h - th) // 2), ext, fill="#" + c[6:])
|
||||||
img = img.resize((w * 3, h * 3), Image.Resampling.NEAREST)
|
img = img.resize((w * 3, h * 3), Image.NEAREST)
|
||||||
|
|
||||||
buf = BytesIO()
|
buf = BytesIO()
|
||||||
img.save(buf, format="PNG", compress_level=1)
|
img.save(buf, format="PNG", compress_level=1)
|
||||||
|
|
|
@ -266,11 +266,12 @@ class ThumbSrv(object):
|
||||||
if fun:
|
if fun:
|
||||||
try:
|
try:
|
||||||
fun(abspath, tpath)
|
fun(abspath, tpath)
|
||||||
except:
|
except Exception as ex:
|
||||||
msg = "{} could not create thumbnail of {}\n{}"
|
msg = "{} could not create thumbnail of {}\n{}"
|
||||||
msg = msg.format(fun.__name__, abspath, min_ex())
|
msg = msg.format(fun.__name__, abspath, min_ex())
|
||||||
c: Union[str, int] = 1 if "<Signals.SIG" in msg else "1;30"
|
c: Union[str, int] = 1 if "<Signals.SIG" in msg else "1;30"
|
||||||
self.log(msg, c)
|
self.log(msg, c)
|
||||||
|
if getattr(ex, "returncode", 0) != 321:
|
||||||
with open(tpath, "wb") as _:
|
with open(tpath, "wb") as _:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -418,21 +419,30 @@ class ThumbSrv(object):
|
||||||
|
|
||||||
c: Union[str, int] = "1;30"
|
c: Union[str, int] = "1;30"
|
||||||
t = "FFmpeg failed (probably a corrupt video file):\n"
|
t = "FFmpeg failed (probably a corrupt video file):\n"
|
||||||
if cmd[-1].lower().endswith(b".webp") and (
|
if (
|
||||||
|
(not self.args.th_ff_jpg or time.time() - int(self.args.th_ff_jpg) < 60)
|
||||||
|
and cmd[-1].lower().endswith(b".webp")
|
||||||
|
and (
|
||||||
"Error selecting an encoder" in serr
|
"Error selecting an encoder" in serr
|
||||||
or "Automatic encoder selection failed" in serr
|
or "Automatic encoder selection failed" in serr
|
||||||
or "Default encoder for format webp" in serr
|
or "Default encoder for format webp" in serr
|
||||||
or "Please choose an encoder manually" in serr
|
or "Please choose an encoder manually" in serr
|
||||||
|
)
|
||||||
):
|
):
|
||||||
self.args.th_ff_jpg = True
|
self.args.th_ff_jpg = time.time()
|
||||||
t = "FFmpeg failed because it was compiled without libwebp; enabling --th-ff-jpg to force jpeg output:\n"
|
t = "FFmpeg failed because it was compiled without libwebp; enabling --th-ff-jpg to force jpeg output:\n"
|
||||||
|
ret = 321
|
||||||
c = 1
|
c = 1
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
not self.args.th_ff_swr or time.time() - int(self.args.th_ff_swr) < 60
|
||||||
|
) and (
|
||||||
"Requested resampling engine is unavailable" in serr
|
"Requested resampling engine is unavailable" in serr
|
||||||
or "output pad on Parsed_aresample_" in serr
|
or "output pad on Parsed_aresample_" in serr
|
||||||
):
|
):
|
||||||
t = "FFmpeg failed because it was compiled without libsox; you must set --th-ff-swr to force swr resampling:\n"
|
self.args.th_ff_swr = time.time()
|
||||||
|
t = "FFmpeg failed because it was compiled without libsox; enabling --th-ff-swr to force swr resampling:\n"
|
||||||
|
ret = 321
|
||||||
c = 1
|
c = 1
|
||||||
|
|
||||||
lines = serr.strip("\n").split("\n")
|
lines = serr.strip("\n").split("\n")
|
||||||
|
|
Loading…
Reference in a new issue