diff --git a/contrib/src/aom/SHA512SUMS b/contrib/src/aom/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..fa8d17756400c91c73670a285663eb9db6b049c8
--- /dev/null
+++ b/contrib/src/aom/SHA512SUMS
@@ -0,0 +1 @@
+9bd118bf46d777da4e85f348fed95510ce583d16d005d062d33e2899f16f24bdb8b120792a7c77ccb64b4e1ff5b3d934342fb1b356bb426693ef69220f138c5f  libaom-3.3.0.tar.gz
diff --git a/contrib/src/aom/rules.mak b/contrib/src/aom/rules.mak
index 1ee8b8b278436f3b0dfdedd67eee779e79d1686f..07aa6f48976355f8faa5dae27693873e616076c9 100644
--- a/contrib/src/aom/rules.mak
+++ b/contrib/src/aom/rules.mak
@@ -1,23 +1,19 @@
 # aom
-AOM_VERSION := v3.1.1
-AOM_GITURL := https://aomedia.googlesource.com/aom/+archive/$(AOM_VERSION).tar.gz
+AOM_VERSION := 3.3.0
+AOM_URL := https://storage.googleapis.com/aom-releases/libaom-$(AOM_VERSION).tar.gz
 
 PKGS += aom
 ifeq ($(call need_pkg,"aom"),)
 PKGS_FOUND += aom
 endif
 
-$(TARBALLS)/aom-$(AOM_VERSION).tar.gz:
-	$(call download_pkg,$(AOM_GITURL),aom)
+$(TARBALLS)/libaom-$(AOM_VERSION).tar.gz:
+	$(call download_pkg,$(AOM_URL),aom)
 
-.sum-aom: aom-$(AOM_VERSION).tar.gz
-	$(warning $@ not implemented)
-	touch $@
+.sum-aom: libaom-$(AOM_VERSION).tar.gz
 
-aom: aom-$(AOM_VERSION).tar.gz .sum-aom
-	rm -Rf $(UNPACK_DIR) $@
-	mkdir -p $(UNPACK_DIR)
-	tar xvzfo "$<" -C $(UNPACK_DIR)
+aom: libaom-$(AOM_VERSION).tar.gz .sum-aom
+	$(UNPACK)
 ifdef HAVE_ANDROID
 	$(APPLY) $(SRC)/aom/aom-android-pthreads.patch
 	$(APPLY) $(SRC)/aom/aom-android-cpufeatures.patch
@@ -40,12 +36,10 @@ AOM_CONF := \
 	-DENABLE_DOCS=OFF \
 	-DENABLE_EXAMPLES=OFF \
 	-DENABLE_TOOLS=OFF \
-	-DCONFIG_UNIT_TESTS=0 \
-	-DENABLE_TESTS=OFF \
-	-DCONFIG_INSTALL_BINS=0 \
-	-DCONFIG_INSTALL_DOCS=0 \
-	-DCONFIG_DEPENDENCY_TRACKING=0 \
-	-DCONFIG_AV1_ENCODER=0
+	-DENABLE_TESTS=OFF
+
+# The aom module only supports decoding in 3.0.x
+AOM_CONF += -DCONFIG_AV1_ENCODER=0
 
 ifndef HAVE_WIN32
 AOM_CONF += -DCONFIG_PIC=1