src/static/videos/firewall.jpg \
src/static/videos/firewall@1920.av1.mp4 \
src/static/videos/firewall@1920.h265.mp4 \
- src/static/videos/firewall@1920.h264.mp4
+ src/static/videos/firewall@1920.h264.mp4 \
+ src/static/videos/firewall@1920.vp9.mp4
static_videosdir = $(staticdir)/videos
# Video Stuff
-FFMPEG += \
- -loglevel quiet
+# Multi-threading options for faster encoding
+FFMPEG_MT = \
+ -row-mt 1 \
+ -threads $(shell getconf _NPROCESSORS_ONLN) \
+ -tile-columns 2
+
+# Enable to log less
+#FFMPEG += \
+# -loglevel quiet
# AV1
src/static/videos/firewall@%.av1.mp4: src/static/videos/firewall.mp4
-vf scale=$(patsubst src/static/videos/firewall@%.h264.mp4,%,$@):-2,fps=25 \
$@
+# VP9
+src/static/videos/firewall@%.vp9.mp4: src/static/videos/firewall.mp4
+ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
+ $(FFMPEG) -y \
+ -i $^ \
+ -map_metadata -1 \
+ -an \
+ -c:v libvpx-vp9 \
+ -b:v 0 \
+ -crf 31 \
+ -deadline best \
+ -preset veryslow \
+ -pix_fmt yuv420p \
+ -movflags +faststart \
+ -vf scale=$(patsubst src/static/videos/firewall@%.vp9.mp4,%,$@):-2:flags=lanczos,fps=25 \
+ $(FFMPEG_MT) \
+ $@
+
# Cover image
src/static/videos/firewall.jpg: src/static/videos/firewall.mp4
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
{# H.265/HEVC for modern browsers #}
<source src="{{ static_url("videos/firewall@1920.h265.mp4") }}" type="video/mp4; codecs=hvc1" />
- {# H.264/AVC as compatibility option for anything else #}
+ {# H.264/AVC for people who have a hardware decoder for it #}
<source src="{{ static_url("videos/firewall@1920.h264.mp4") }}" type="video/mp4; codecs=avc1.4D401E" />
+ {# VP9 as compatibility option for anything else #}
+ <source src="{{ static_url("videos/firewall@1920.vp9.mp4") }}" type="video/mp4; codecs=vp9" />
+
<p>
Blazing Fire by Oleg Gamulinskii (CC)
https://www.pexels.com/video/blazing-fire-2715412/