diff --git a/contrib/src/ffmpeg/SHA512SUMS b/contrib/src/ffmpeg/SHA512SUMS
index bae7b75f74b18edddacff2946b82f077402f3136..05bd0c648e2bf624d39c89f75f934e23df56e2f6 100644
--- a/contrib/src/ffmpeg/SHA512SUMS
+++ b/contrib/src/ffmpeg/SHA512SUMS
@@ -1 +1 @@
-f003bfeeefa759daa01be14bde921dd8aa88fb45e15189122067068b67e624054e8f964368b9eaf88ee13ebeda26f3b5a5e7e0e2675298d566e0874489a6abee  ffmpeg-5ab44ff20cdc0e05adecbd0cd352d25fcb930094.tar.gz
+bc9f5b166b21123864cf9b0028abf76ad04fd3a95608552c9e1c9008b3ea0d7ab755121c31761d8bf9b052163865e4528800c2f28c439d910b89cc6fc5f874d0  ffmpeg-59da9dcd7ef6277e4e04998ced71b05a6083c635.tar.gz
\ No newline at end of file
diff --git a/contrib/src/ffmpeg/avfoundation_fix.patch b/contrib/src/ffmpeg/avfoundation_fix.patch
deleted file mode 100644
index 19e2cfc156646aa5f62485a016d995523c15ec24..0000000000000000000000000000000000000000
--- a/contrib/src/ffmpeg/avfoundation_fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 794bc48721d987bc9f511b89ac2353a8132f7332 Mon Sep 17 00:00:00 2001
-From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
-Date: Wed, 10 Jul 2019 14:26:48 -0400
-Subject: [PATCH] avfoundation_fix
-
----
- libavdevice/avfoundation.m | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m
-index 98552ac..5a3ac31 100644
---- a/libavdevice/avfoundation.m
-+++ b/libavdevice/avfoundation.m
-@@ -944,9 +944,8 @@ static int avf_read_packet(AVFormatContext *s, AVPacket *pkt)
-         CVImageBufferRef image_buffer;
-         lock_frames(ctx);
- 
--        image_buffer = CMSampleBufferGetImageBuffer(ctx->current_frame);
--
-         if (ctx->current_frame != nil) {
-+            image_buffer = CMSampleBufferGetImageBuffer(ctx->current_frame);
-             int status;
-             if (av_new_packet(pkt, (int)CVPixelBufferGetDataSize(image_buffer)) < 0) {
-                 return AVERROR(EIO);
--- 
-2.22.0
-
diff --git a/contrib/src/ffmpeg/fetch_and_patch.bat b/contrib/src/ffmpeg/fetch_and_patch.bat
index a0ddff8fd12b88974ecfaef6e9d7f0dc98d11fe9..21a593f39a1028814f13ccb441795465da12f28a 100644
--- a/contrib/src/ffmpeg/fetch_and_patch.bat
+++ b/contrib/src/ffmpeg/fetch_and_patch.bat
@@ -3,7 +3,7 @@ set BUILD=%SRC%..\build
 mkdir %BUILD%
 cd %BUILD%
 
-set FFMPEG_VERSION=5ee203076fa1b1b5da32f525f2b6df3bd5e93b09
+set FFMPEG_VERSION=59da9dcd7ef6277e4e04998ced71b05a6083c635
 set FFMPEG_URL=https://github.com/FFmpeg/FFmpeg/archive/%FFMPEG_VERSION%.tar.gz
 
 if %USE_CACHE%==1 (
diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak
index c49c0078d448d82d059bb8c359c8e5be10b6bcc4..a8cd10aab269a185eb14a1af305998eb2cd7c771 100644
--- a/contrib/src/ffmpeg/rules.mak
+++ b/contrib/src/ffmpeg/rules.mak
@@ -1,4 +1,4 @@
-FFMPEG_HASH := 5ab44ff20cdc0e05adecbd0cd352d25fcb930094
+FFMPEG_HASH := 59da9dcd7ef6277e4e04998ced71b05a6083c635
 FFMPEG_URL := https://git.ffmpeg.org/gitweb/ffmpeg.git/snapshot/$(FFMPEG_HASH).tar.gz
 
 PKGS+=ffmpeg
@@ -325,9 +325,6 @@ ffmpeg: ffmpeg-$(FFMPEG_HASH).tar.gz
 	(cd $@-$(FFMPEG_HASH) && tar x $(if ${BATCH_MODE},,-v) --strip-components=1 -f ../$<)
 	$(APPLY) $(SRC)/ffmpeg/remove-mjpeg-log.patch
 	$(APPLY) $(SRC)/ffmpeg/change-RTCP-ratio.patch
-ifdef HAVE_MACOSX
-	$(APPLY) $(SRC)/ffmpeg/avfoundation_fix.patch
-endif
 	$(UPDATE_AUTOCONFIG)
 	$(MOVE)
 
diff --git a/contrib/src/ffmpeg/windows-configure-ffnvcodec.patch b/contrib/src/ffmpeg/windows-configure-ffnvcodec.patch
index 4be2ddf5a11a2d65c9bce40576140e8d6575c02a..78a69c28abe42be8e6c0d688324ed4ffc35cb588 100644
--- a/contrib/src/ffmpeg/windows-configure-ffnvcodec.patch
+++ b/contrib/src/ffmpeg/windows-configure-ffnvcodec.patch
@@ -1,24 +1,24 @@
-From 63d0edcee2744317fc0befad53000c206eb5ee31 Mon Sep 17 00:00:00 2001
+From f84107def60c4cd3dcbbcd66eaec9e934a0f6467 Mon Sep 17 00:00:00 2001
 From: Eden Abitbol <eden.abitbol@savoirfairelinux.com>
-Date: Tue, 9 Jul 2019 10:52:29 -0400
-Subject: [PATCH] Remove ffnvcodec linux style package check for windows
- support.
+Date: Tue, 27 Aug 2019 12:05:38 -0400
+Subject: [PATCH] windows ffnvcodec patch
 
 ---
- configure | 7 -------
- 1 file changed, 7 deletions(-)
+ configure | 8 --------
+ 1 file changed, 8 deletions(-)
 
 --- a/configure
 +++ b/configure
-@@ -5897,13 +5897,6 @@ check_type "va/va.h va/va_enc_vp9.h"  "VAEncPictureParameterBufferVP9"
- 
- check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
+@@ -6107,14 +6107,6 @@ else
+     check_nvcc cuda_llvm
+ fi
  
 -if ! disabled ffnvcodec; then
--    check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.2" \
--          "ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h" "" || \
--        { test_pkg_config ffnvcodec_tmp "ffnvcodec < 8.1" "" "" && check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.2" \
--          "ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h" ""; }
+-    ffnv_hdr_list="ffnvcodec/nvEncodeAPI.h ffnvcodec/dynlink_cuda.h ffnvcodec/dynlink_cuviddec.h ffnvcodec/dynlink_nvcuvid.h"
+-    check_pkg_config ffnvcodec "ffnvcodec >= 9.0.18.0" "$ffnv_hdr_list" "" || \
+-      check_pkg_config ffnvcodec "ffnvcodec >= 8.2.15.8 ffnvcodec < 8.3" "$ffnv_hdr_list" "" || \
+-      check_pkg_config ffnvcodec "ffnvcodec >= 8.1.24.9 ffnvcodec < 8.2" "$ffnv_hdr_list" "" || \
+-      check_pkg_config ffnvcodec "ffnvcodec >= 8.0.14.9 ffnvcodec < 8.1" "$ffnv_hdr_list" ""
 -fi
 -
  check_cpp_condition winrt windows.h "!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)"
diff --git a/contrib/src/ffmpeg/windows-configure-libmfx.patch b/contrib/src/ffmpeg/windows-configure-libmfx.patch
index 2559107dad6a778146c915edb885a5ee5d2bf574..c2d86e9a45602f98932eb5ce845d143b8e456c8c 100644
--- a/contrib/src/ffmpeg/windows-configure-libmfx.patch
+++ b/contrib/src/ffmpeg/windows-configure-libmfx.patch
@@ -1,7 +1,7 @@
-From 2358a7712c9cc88990131f04ea678b5020bc2bb0 Mon Sep 17 00:00:00 2001
+From f7e11c47904c43ada3821e7771229945c08a2080 Mon Sep 17 00:00:00 2001
 From: Eden Abitbol <eden.abitbol@savoirfairelinux.com>
-Date: Tue, 23 Jul 2019 12:30:03 -0400
-Subject: [PATCH] Fix mfx link for windows.
+Date: Tue, 27 Aug 2019 12:07:02 -0400
+Subject: [PATCH] windows libmfx patch
 
 ---
  configure | 2 --
@@ -9,7 +9,7 @@ Subject: [PATCH] Fix mfx link for windows.
 
 --- a/configure
 +++ b/configure
-@@ -6016,8 +6016,6 @@ enabled libkvazaar        && require_pkg_config libkvazaar "kvazaar >= 0.8.1" kv
+@@ -6225,8 +6225,6 @@ enabled liblensfun        && require_pkg_config liblensfun lensfun lensfun.h lf_
  # Media SDK or Intel Media Server Studio, these don't come with
  # pkg-config support.  Instead, users should make sure that the build
  # can find the libraries and headers through other means.
diff --git a/contrib/src/ffmpeg/windows-configure.patch b/contrib/src/ffmpeg/windows-configure.patch
index 7cd6de3ad069814479693bb7d76abe6ba448c0ed..3ff8308b86b7ac653dce4ffb9d751235a01768d5 100644
--- a/contrib/src/ffmpeg/windows-configure.patch
+++ b/contrib/src/ffmpeg/windows-configure.patch
@@ -1,6 +1,15 @@
+From 737a77c1399d5f8fdab5b913b5e6b43f6ec73751 Mon Sep 17 00:00:00 2001
+From: Eden Abitbol <eden.abitbol@savoirfairelinux.com>
+Date: Tue, 27 Aug 2019 12:00:41 -0400
+Subject: [PATCH] windows configure patch
+
+---
+ configure | 35 +----------------------------------
+ 1 file changed, 1 insertion(+), 34 deletions(-)
+
 --- a/configure
 +++ b/configure
-@@ -1486,7 +1486,7 @@ require_cpp_condition(){
+@@ -1569,7 +1569,7 @@ require_cpp_condition(){
  require_pkg_config(){
      log require_pkg_config "$@"
      pkg_version="$2"
@@ -8,56 +17,54 @@
 +    #check_pkg_config "$@" || die "ERROR: $pkg_version not found using pkg-config$pkg_config_fail_message"
  }
  
- hostcc_e(){
-@@ -6735,17 +6735,6 @@ flatten_extralibs_wrapper(){
-     eval printf \''%s'\' \""\$$list_name"\"
- }
- 
--for linkunit in $LIBRARY_LIST; do
--    unset current_extralibs
--    eval components=\$$(toupper ${linkunit})_COMPONENTS_LIST
--    for comp in ${components}; do
--        enabled $comp || continue
--        comp_extralibs="${comp}_extralibs"
--        append current_extralibs $comp_extralibs
--    done
--    eval prepend ${linkunit}_extralibs $current_extralibs
--done
--
- for linkunit in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do
-     eval ${linkunit}_extralibs=\$\(flatten_extralibs_wrapper ${linkunit}_extralibs\)
- done
-@@ -6068,29 +6068,7 @@ enabled libvo_amrwbenc    && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_in
+ test_host_cc(){
+@@ -6286,28 +6286,6 @@ enabled libvo_amrwbenc    && require libvo_amrwbenc vo-amrwbenc/enc_if.h E_IF_in
  enabled libvorbis         && require_pkg_config libvorbis vorbis vorbis/codec.h vorbis_info_init &&
                               require_pkg_config libvorbisenc vorbisenc vorbis/vorbisenc.h vorbis_encode_init
  
 -enabled libvpx            && {
 -    enabled libvpx_vp8_decoder && {
 -        check_pkg_config libvpx_vp8_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp8_dx ||
--            check_lib libvpx_vp8_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_dec_init_ver VPX_IMG_FMT_HIGHBITDEPTH" -lvpx ||
--                die "ERROR: libvpx decoder version must be >=1.4.0";
+-            check_lib libvpx_vp8_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp8_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs"
 -    }
 -    enabled libvpx_vp8_encoder && {
 -        check_pkg_config libvpx_vp8_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp8_cx ||
--            check_lib libvpx_vp8_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_enc_init_ver VPX_IMG_FMT_HIGHBITDEPTH" -lvpx ||
--                die "ERROR: libvpx encoder version must be >=1.4.0";
+-            check_lib libvpx_vp8_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp8_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs"
 -    }
 -    enabled libvpx_vp9_decoder && {
 -        check_pkg_config libvpx_vp9_decoder "vpx >= 1.4.0" "vpx/vpx_decoder.h vpx/vp8dx.h" vpx_codec_vp9_dx ||
--            check_lib libvpx_vp9_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs"
+-            check_lib libvpx_vp9_decoder "vpx/vpx_decoder.h vpx/vp8dx.h" "vpx_codec_vp9_dx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs"
 -    }
 -    enabled libvpx_vp9_encoder && {
 -        check_pkg_config libvpx_vp9_encoder "vpx >= 1.4.0" "vpx/vpx_encoder.h vpx/vp8cx.h" vpx_codec_vp9_cx ||
--            check_lib libvpx_vp9_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs"
+-            check_lib libvpx_vp9_encoder "vpx/vpx_encoder.h vpx/vp8cx.h" "vpx_codec_vp9_cx VPX_IMG_FMT_HIGHBITDEPTH" "-lvpx $libm_extralibs $pthreads_extralibs"
 -    }
 -    if disabled_all libvpx_vp8_decoder libvpx_vp9_decoder libvpx_vp8_encoder libvpx_vp9_encoder; then
 -        die "libvpx enabled but no supported decoders found"
 -    fi
 -}
-+
- 
+-
  enabled libwavpack        && require libwavpack wavpack/wavpack.h WavpackOpenFileOutput  -lwavpack
  enabled libwebp           && {
+     enabled libwebp_encoder      && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion
+@@ -6973,17 +6951,6 @@ flatten_extralibs_wrapper(){
+     eval printf \''%s'\' \""\$$list_name"\"
+ }
+ 
+-for linkunit in $LIBRARY_LIST; do
+-    unset current_extralibs
+-    eval components=\$$(toupper ${linkunit})_COMPONENTS_LIST
+-    for comp in ${components}; do
+-        enabled $comp || continue
+-        comp_extralibs="${comp}_extralibs"
+-        append current_extralibs $comp_extralibs
+-    done
+-    eval prepend ${linkunit}_extralibs $current_extralibs
+-done
+-
+ for linkunit in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do
+     eval ${linkunit}_extralibs=\$\(flatten_extralibs_wrapper ${linkunit}_extralibs\)
+ done
 -- 
-2.10.2.windows.1
+2.22.0.windows.1