From 91cc58ccfa2fad9dcc05bfca513a65ee7e30e60c Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 18:32:32 -0500 Subject: [PATCH 01/15] Bump version --- src/pySISF/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/__init__.py b/src/pySISF/__init__.py index 74f15e6..f45deb0 100644 --- a/src/pySISF/__init__.py +++ b/src/pySISF/__init__.py @@ -5,7 +5,7 @@ """Import SISF components""" from __future__ import annotations -__version__ = "0.3.0" +__version__ = "0.4.0" from pySISF import sisf from pySISF import vidlib From 3fcf87b622f84acd810c22ef686cb1f0262a6035 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 18:58:53 -0500 Subject: [PATCH 02/15] remove redundant encoder setting --- src/pySISF/vidlib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 28356e4..542d9ac 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -53,8 +53,8 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp f"{fps}/1", "-pix_fmt", "gray", - "-vcodec", - "libx264", + #"-vcodec", + #"libx264", "-preset", preset, "-crf", From ff81d201993e6376fe090ad71b79e8ad21bdfcc8 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 19:01:35 -0500 Subject: [PATCH 03/15] Update vidlib.py --- src/pySISF/vidlib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 542d9ac..33c0277 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -84,8 +84,8 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp ffmpeg_command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - # stderr = subprocess.PIPE - stderr=subprocess.DEVNULL, + stderr = subprocess.PIPE + #stderr=subprocess.DEVNULL, ) to_encoder = b"" From c8b9576cb0107fb1b483855cdb2436d83fe7aa47 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 19:02:26 -0500 Subject: [PATCH 04/15] Update vidlib.py --- src/pySISF/vidlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 33c0277..7debf3f 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -84,7 +84,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp ffmpeg_command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr = subprocess.PIPE + #stderr = subprocess.PIPE #stderr=subprocess.DEVNULL, ) From 3e49cbfbad80ff91a371c2430999f6652abfc55e Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 19:05:31 -0500 Subject: [PATCH 05/15] Update sisf.py --- src/pySISF/sisf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/sisf.py b/src/pySISF/sisf.py index 3717198..4600396 100644 --- a/src/pySISF/sisf.py +++ b/src/pySISF/sisf.py @@ -82,7 +82,7 @@ def create_shard_worker(data, coords, compression, compression_opts=None): ) case 3: return vidlib.encode_stack( - c, method=vidlib.EncoderType.AV1_SVT, debug=DEBUG, compression_opts=compression_opts + c, method=vidlib.EncoderType.AV1_AOM, debug=DEBUG, compression_opts=compression_opts ) case _: raise ValueError(f"Invalid compression parameter {compression}") From 772727d162741f65d4bc194a4a330eb7d8750d1a Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 19:16:49 -0500 Subject: [PATCH 06/15] Update vidlib.py --- src/pySISF/vidlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 7debf3f..703cb1d 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -85,7 +85,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp stdin=subprocess.PIPE, stdout=subprocess.PIPE, #stderr = subprocess.PIPE - #stderr=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, ) to_encoder = b"" From c4ec3b0e26e4b52357de5481da20ac7d6916f891 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Tue, 3 Dec 2024 19:53:54 -0500 Subject: [PATCH 07/15] Run formatter --- src/pySISF/vidlib.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 703cb1d..35d8b36 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -53,8 +53,8 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp f"{fps}/1", "-pix_fmt", "gray", - #"-vcodec", - #"libx264", + # "-vcodec", + # "libx264", "-preset", preset, "-crf", @@ -84,7 +84,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp ffmpeg_command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - #stderr = subprocess.PIPE + # stderr = subprocess.PIPE stderr=subprocess.DEVNULL, ) From 7b3ae1a8a008644b39b4e836251aa04cea4d4509 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:06:46 -0500 Subject: [PATCH 08/15] Update sisf.py --- src/pySISF/sisf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/sisf.py b/src/pySISF/sisf.py index 4600396..3717198 100644 --- a/src/pySISF/sisf.py +++ b/src/pySISF/sisf.py @@ -82,7 +82,7 @@ def create_shard_worker(data, coords, compression, compression_opts=None): ) case 3: return vidlib.encode_stack( - c, method=vidlib.EncoderType.AV1_AOM, debug=DEBUG, compression_opts=compression_opts + c, method=vidlib.EncoderType.AV1_SVT, debug=DEBUG, compression_opts=compression_opts ) case _: raise ValueError(f"Invalid compression parameter {compression}") From e382a03087a2d78536116ecd7beb6d2c7018fd53 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:15:14 -0500 Subject: [PATCH 09/15] Update vidlib.py --- src/pySISF/vidlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 35d8b36..e901ac0 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -85,7 +85,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp stdin=subprocess.PIPE, stdout=subprocess.PIPE, # stderr = subprocess.PIPE - stderr=subprocess.DEVNULL, + #stderr=subprocess.DEVNULL, ) to_encoder = b"" From b05f071e83fbe68bbf29fae8c4ed07e1057ac21b Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:27:52 -0500 Subject: [PATCH 10/15] Update vidlib.py --- src/pySISF/vidlib.py | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index e901ac0..9360466 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -22,8 +22,22 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp w = input_stack.shape[0] h = input_stack.shape[1] - crf = 17 - preset = "slow" + match method: + case EncoderType.X264: + crf = 17 + preset = "slow" + case EncoderType.X265: + crf = 17 + preset = "slow" + case EncoderType.AV1_AOM: + crf = 5 + preset = '3' + case EncoderType.AV1_SVT: + crf = 5 + preset = '3' + case _: + raise ValueError(f"Unknown method {method}.") + if compression_opts: if "crf" in compression_opts: crf = compression_opts["crf"] @@ -62,6 +76,8 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp # Codec and output location added below ] + + match method: case EncoderType.X264: ffmpeg_command.append("-vcodec") From f968507975f9352ed5742a546100babe906d5008 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:30:15 -0500 Subject: [PATCH 11/15] Update vidlib.py --- src/pySISF/vidlib.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 9360466..9b54f97 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -31,10 +31,10 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp preset = "slow" case EncoderType.AV1_AOM: crf = 5 - preset = '3' + preset = "3" case EncoderType.AV1_SVT: crf = 5 - preset = '3' + preset = "3" case _: raise ValueError(f"Unknown method {method}.") @@ -76,8 +76,6 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp # Codec and output location added below ] - - match method: case EncoderType.X264: ffmpeg_command.append("-vcodec") @@ -101,7 +99,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp stdin=subprocess.PIPE, stdout=subprocess.PIPE, # stderr = subprocess.PIPE - #stderr=subprocess.DEVNULL, + # stderr=subprocess.DEVNULL, ) to_encoder = b"" From 9b27afe47921ad60c78dea8193154146b93b488b Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:44:01 -0500 Subject: [PATCH 12/15] Update vidlib.py --- src/pySISF/vidlib.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 9b54f97..a1ec940 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -87,6 +87,8 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp ffmpeg_command.append("-vcodec") ffmpeg_command.append("libaom-av1") case EncoderType.AV1_SVT: + ffmpeg_command.append("-rc") + ffmpeg_command.append("0") ffmpeg_command.append("-vcodec") ffmpeg_command.append("libsvtav1") case _: From f4f669b1e12c793461262914f7ff0112738b38e4 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:48:59 -0500 Subject: [PATCH 13/15] Update vidlib.py --- src/pySISF/vidlib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index a1ec940..c92613d 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -158,7 +158,7 @@ def decode_stack(input_blob, dims=(128, 128), method="libx264", debug=False, fps ffmpeg_command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - # stderr = subprocess.PIPE + stderr = subprocess.PIPE ) out, err = job.communicate(input=input_blob) From b865a44f515b5d4b1ed1679b661b52c4fb782623 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 10:58:25 -0500 Subject: [PATCH 14/15] Update vidlib.py --- src/pySISF/vidlib.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index c92613d..06fe6a6 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -101,7 +101,7 @@ def encode_stack(input_stack, method=EncoderType.X264, debug=False, fps=24, comp stdin=subprocess.PIPE, stdout=subprocess.PIPE, # stderr = subprocess.PIPE - # stderr=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, ) to_encoder = b"" @@ -158,7 +158,7 @@ def decode_stack(input_blob, dims=(128, 128), method="libx264", debug=False, fps ffmpeg_command, stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr = subprocess.PIPE + #stderr = subprocess.PIPE ) out, err = job.communicate(input=input_blob) From f3725f276bddd4f4316e62af5f1c1058d5cea523 Mon Sep 17 00:00:00 2001 From: Logan Walker Date: Wed, 4 Dec 2024 13:47:25 -0500 Subject: [PATCH 15/15] Update vidlib.py --- src/pySISF/vidlib.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pySISF/vidlib.py b/src/pySISF/vidlib.py index 06fe6a6..26181bc 100644 --- a/src/pySISF/vidlib.py +++ b/src/pySISF/vidlib.py @@ -7,6 +7,9 @@ import numpy as np import subprocess +# Static builds can be downloaded from: +# - https://github.com/BtbN/FFmpeg-Builds/releases/tag/latest +# - https://johnvansickle.com/ffmpeg/ ffmpeg_exe = "ffmpeg" EncoderType = Enum("EncoderType", ["X264", "X265", "AV1_AOM", "AV1_SVT"])