aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorDennis Fink2026-05-17 08:37:26 +0200
committerDennis Fink2026-05-17 08:37:26 +0200
commit8daa738b2450b8063178d9a69a99a21789351b30 (patch)
tree608ed5d02ac7cb959893360c6568663a5f2e0d8a /contrib
parentf7f7769f1a9141da4823e3f33ea6152bbdb254d8 (diff)
downloadtranscode.sh-8daa738b2450b8063178d9a69a99a21789351b30.tar.gz
transcode.sh-8daa738b2450b8063178d9a69a99a21789351b30.zip
feat(presets): add contributed video presets
Add initial contributed presets for AV1/SVT-AV1, H.264/x264, H.265/x265, and VP9/libvpx-vp9. Provide fast, balanced, and high-quality variants where applicable so users can choose between encode speed, compression efficiency, and visual quality. Include preset descriptions and use derived GOP size and pixel format settings where appropriate for consistent behavior with transcode.sh.
Diffstat (limited to '')
-rw-r--r--contrib/presets/av1-svt-balanced.sh10
-rw-r--r--contrib/presets/av1-svt-fash.sh9
-rw-r--r--contrib/presets/av1-svt-high-quality.sh10
-rw-r--r--contrib/presets/av1-svt-personal.sh10
-rw-r--r--contrib/presets/h264-x264-balanced.sh8
-rw-r--r--contrib/presets/h264-x264-compatible.sh10
-rw-r--r--contrib/presets/h264-x264-fast.sh8
-rw-r--r--contrib/presets/h264-x264-high-quality.sh8
-rw-r--r--contrib/presets/h265-x265-balanced.sh8
-rw-r--r--contrib/presets/h265-x265-fast.sh8
-rw-r--r--contrib/presets/h265-x265-high-quality.sh8
-rw-r--r--contrib/presets/vp9-balanced.sh9
-rw-r--r--contrib/presets/vp9-fash.sh10
-rw-r--r--contrib/presets/vp9-high-quality.sh10
14 files changed, 126 insertions, 0 deletions
diff --git a/contrib/presets/av1-svt-balanced.sh b/contrib/presets/av1-svt-balanced.sh
new file mode 100644
index 0000000..49d028f
--- /dev/null
+++ b/contrib/presets/av1-svt-balanced.sh
@@ -0,0 +1,10 @@
+# description: Encode to AV1 with SVT-AV1 at a balanced quality/speed trade-off
+export SVT_LOG=0
+ffargs=(
+ -c:v:0 libsvtav1
+ -preset 6
+ -crf 30
+ -g "$output_gop_size"
+ -pix_fmt "$output_pixel_format"
+ -svtav1-params "loglevel=0:tune=0"
+)
diff --git a/contrib/presets/av1-svt-fash.sh b/contrib/presets/av1-svt-fash.sh
new file mode 100644
index 0000000..981e2ca
--- /dev/null
+++ b/contrib/presets/av1-svt-fash.sh
@@ -0,0 +1,9 @@
+export SVT_LOG=0
+ffargs=(
+ -c:v:0 libsvtav1
+ -preset 8
+ -crf 34
+ -g "$output_gop_size"
+ -pix_fmt "$output_pixel_format"
+ -svtav1-params "loglevel=0:tune=0"
+)
diff --git a/contrib/presets/av1-svt-high-quality.sh b/contrib/presets/av1-svt-high-quality.sh
new file mode 100644
index 0000000..adc93ff
--- /dev/null
+++ b/contrib/presets/av1-svt-high-quality.sh
@@ -0,0 +1,10 @@
+# description: Encode to AV1 with SVT-AV1 at high visual quality
+export SVT_LOG=0
+ffargs=(
+ -c:v:0 libsvtav1
+ -preset 4
+ -crf 26
+ -g "$output_gop_size"
+ -pix_fmt yuv420p10le
+ -svtav1-params "loglevel=0:tune=0:film-grain=6"
+)
diff --git a/contrib/presets/av1-svt-personal.sh b/contrib/presets/av1-svt-personal.sh
new file mode 100644
index 0000000..2c623cd
--- /dev/null
+++ b/contrib/presets/av1-svt-personal.sh
@@ -0,0 +1,10 @@
+# description: Encode to AV1 with SVT-AV1 for personal use, using 10-bit output and light film grain synthesis
+export SVT_LOG=0
+ffargs=(
+ -c:v:0 libsvtav1
+ -preset 5
+ -crf 32
+ -g "$output_gop_size"
+ -pix_fmt yuv420p10le
+ -svtav1-params "loglevel=0:tune=0:film-grain=8"
+)
diff --git a/contrib/presets/h264-x264-balanced.sh b/contrib/presets/h264-x264-balanced.sh
new file mode 100644
index 0000000..e952966
--- /dev/null
+++ b/contrib/presets/h264-x264-balanced.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.264 with x264 at a balanced quality/speed trade-off
+ffargs=(
+ -c:v:0 libx264
+ -preset slow
+ -crf 22
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/h264-x264-compatible.sh b/contrib/presets/h264-x264-compatible.sh
new file mode 100644
index 0000000..b592250
--- /dev/null
+++ b/contrib/presets/h264-x264-compatible.sh
@@ -0,0 +1,10 @@
+# description: Encode to broadly compatible H.264 using x264 baseline-safe 8-bit 4:2:0 output
+ffargs=(
+ -c:v:0 libx264
+ -preset medium
+ -crf 23
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+ -profile:v high
+ -level:v 4.1
+)
diff --git a/contrib/presets/h264-x264-fast.sh b/contrib/presets/h264-x264-fast.sh
new file mode 100644
index 0000000..4979009
--- /dev/null
+++ b/contrib/presets/h264-x264-fast.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.264 with x264 quickly, prioritizing speed over compression efficiency
+ffargs=(
+ -c:v:0 libx264
+ -preset veryfast
+ -crf 24
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/h264-x264-high-quality.sh b/contrib/presets/h264-x264-high-quality.sh
new file mode 100644
index 0000000..5d93564
--- /dev/null
+++ b/contrib/presets/h264-x264-high-quality.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.264 with x264 at high visual quality
+ffargs=(
+ -c:v:0 libx264
+ -preset slower
+ -crf 18
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/h265-x265-balanced.sh b/contrib/presets/h265-x265-balanced.sh
new file mode 100644
index 0000000..1231e49
--- /dev/null
+++ b/contrib/presets/h265-x265-balanced.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.265/HEVC with x265 at a balanced quality/speed trade-off
+ffargs=(
+ -c:v:0 libx265
+ -preset slow
+ -crf 26
+ -g "$output_gop_size"
+ -pix_fmt yuv420p10le
+)
diff --git a/contrib/presets/h265-x265-fast.sh b/contrib/presets/h265-x265-fast.sh
new file mode 100644
index 0000000..9060e86
--- /dev/null
+++ b/contrib/presets/h265-x265-fast.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.265/HEVC with x265 quickly, prioritizing speed over compression efficiency
+ffargs=(
+ -c:v:0 libx265
+ -preset faster
+ -crf 28
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/h265-x265-high-quality.sh b/contrib/presets/h265-x265-high-quality.sh
new file mode 100644
index 0000000..0db925f
--- /dev/null
+++ b/contrib/presets/h265-x265-high-quality.sh
@@ -0,0 +1,8 @@
+# description: Encode to H.265/HEVC with x265 at high visual quality
+ffargs=(
+ -c:v:0 libx265
+ -preset slower
+ -crf 22
+ -g "$output_gop_size"
+ -pix_fmt yuv420p10le
+)
diff --git a/contrib/presets/vp9-balanced.sh b/contrib/presets/vp9-balanced.sh
new file mode 100644
index 0000000..a6f86cc
--- /dev/null
+++ b/contrib/presets/vp9-balanced.sh
@@ -0,0 +1,9 @@
+ffargs=(
+ -c:v:0 libvpx-vp9
+ -crf 32
+ -b:v 0
+ -deadline good
+ -cpu-used 2
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/vp9-fash.sh b/contrib/presets/vp9-fash.sh
new file mode 100644
index 0000000..2116709
--- /dev/null
+++ b/contrib/presets/vp9-fash.sh
@@ -0,0 +1,10 @@
+# description: Encode to VP9 with libvpx-vp9 quickly, prioritizing speed over compression efficiency
+ffargs=(
+ -c:v:0 libvpx-vp9
+ -crf 36
+ -b:v 0
+ -deadline good
+ -cpu-used 4
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)
diff --git a/contrib/presets/vp9-high-quality.sh b/contrib/presets/vp9-high-quality.sh
new file mode 100644
index 0000000..666c30b
--- /dev/null
+++ b/contrib/presets/vp9-high-quality.sh
@@ -0,0 +1,10 @@
+# description: Encode to VP9 with libvpx-vp9 at high visual quality
+ffargs=(
+ -c:v:0 libvpx-vp9
+ -crf 28
+ -b:v 0
+ -deadline good
+ -cpu-used 1
+ -g "$output_gop_size"
+ -pix_fmt yuv420p
+)