From 68b4f54f67fa1859a195d9671ece3acb4423c069 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 3 Jul 2016 19:58:36 +0300 Subject: [PATCH 1/4] motion-mrdave: patched so that movie quality can be tweaked when using h264 --- package/motion-mrdave/h264-crf-from-vbr.patch | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 package/motion-mrdave/h264-crf-from-vbr.patch diff --git a/package/motion-mrdave/h264-crf-from-vbr.patch b/package/motion-mrdave/h264-crf-from-vbr.patch new file mode 100644 index 0000000000..0f6656010f --- /dev/null +++ b/package/motion-mrdave/h264-crf-from-vbr.patch @@ -0,0 +1,26 @@ +From e65ea2454d6dcc759e2f4fd38548f6844a2c820b Mon Sep 17 00:00:00 2001 +From: Calin Crisan +Date: Sun, 3 Jul 2016 19:49:06 +0300 +Subject: [PATCH] h264 codec: set crf option based on configured vbr + +--- + ffmpeg.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ffmpeg.c b/ffmpeg.c +index df2b47e..ed192ca 100644 +--- a/ffmpeg.c ++++ b/ffmpeg.c +@@ -295,7 +295,11 @@ struct ffmpeg *ffmpeg_open(char *ffmpeg_video_codec, char *filename, + if (c->codec_id == MY_CODEC_ID_H264 || + c->codec_id == MY_CODEC_ID_HEVC){ + av_dict_set(&opts, "preset", "ultrafast", 0); +- av_dict_set(&opts, "crf", "18", 0); ++ ++ /* transform vbr (2 - 31) into crf (0 - 51) by scaling */ ++ char crf[4]; ++ snprintf(crf, 4, "%d", (int) ((vbr - 2) * 1.758)); ++ + av_dict_set(&opts, "tune", "zerolatency", 0); + } + if (strcmp(ffmpeg_video_codec, "ffv1") == 0) c->strict_std_compliance = -2; From da7f110a1794126f6de2d8ea46c76f0efe409dd2 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Mon, 4 Jul 2016 22:52:50 +0300 Subject: [PATCH 2/4] updated motioneye (which fixes an upload services problem) --- board/common/overlay/etc/version | 2 +- package/motioneye/motioneye.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/board/common/overlay/etc/version b/board/common/overlay/etc/version index ba0e8c8f5e..c2d53b07cb 100644 --- a/board/common/overlay/etc/version +++ b/board/common/overlay/etc/version @@ -1,4 +1,4 @@ os_name="motionEyeOS" os_short_name="motioneyeos" os_prefix="meye" -os_version="20160703" +os_version="20160705" diff --git a/package/motioneye/motioneye.mk b/package/motioneye/motioneye.mk index 4b5f19933d..aac388f2e1 100644 --- a/package/motioneye/motioneye.mk +++ b/package/motioneye/motioneye.mk @@ -4,7 +4,7 @@ # ############################################################# -MOTIONEYE_VERSION = dc24bf0d4f47258273f4058b5ff5a3488b553bc5 +MOTIONEYE_VERSION = 5def02069cc8c8818fc6e322561e542e592724a4 MOTIONEYE_SITE = $(call github,ccrisan,motioneye,$(MOTIONEYE_VERSION)) MOTIONEYE_SOURCE = $(MOTIONEYE_VERSION).tar.gz MOTIONEYE_LICENSE = GPLv3 From 8addd6174b075f144ad4ffc3320dccb26624369c Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 8 Jul 2016 19:03:57 +0300 Subject: [PATCH 3/4] motion-mrdave: added a patch to allow controlling h264 movie quality --- package/motion-mrdave/h264-crf-from-vbr.patch | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/package/motion-mrdave/h264-crf-from-vbr.patch b/package/motion-mrdave/h264-crf-from-vbr.patch index 0f6656010f..0f8bc47a2d 100644 --- a/package/motion-mrdave/h264-crf-from-vbr.patch +++ b/package/motion-mrdave/h264-crf-from-vbr.patch @@ -1,7 +1,7 @@ From e65ea2454d6dcc759e2f4fd38548f6844a2c820b Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sun, 3 Jul 2016 19:49:06 +0300 -Subject: [PATCH] h264 codec: set crf option based on configured vbr +Subject: [PATCH 1/2] h264 codec: set crf option based on configured vbr --- ffmpeg.c | 6 +++++- @@ -17,10 +17,37 @@ index df2b47e..ed192ca 100644 av_dict_set(&opts, "preset", "ultrafast", 0); - av_dict_set(&opts, "crf", "18", 0); + -+ /* transform vbr (2 - 31) into crf (0 - 51) by scaling */ ++ /* transforrm vbr (2 - 31) into crf (0 - 51) by scaling */ + char crf[4]; + snprintf(crf, 4, "%d", (int) ((vbr - 2) * 1.758)); + av_dict_set(&opts, "tune", "zerolatency", 0); } if (strcmp(ffmpeg_video_codec, "ffv1") == 0) c->strict_std_compliance = -2; + +From b4138ee0ddc8a7b76b82eb1c80e5d5216dfcb8ce Mon Sep 17 00:00:00 2001 +From: Calin Crisan +Date: Wed, 6 Jul 2016 16:58:09 +0300 +Subject: [PATCH 2/2] h264 codec: fixed crf from vbr: the vbr range is actually + 1 to 32767 + +--- + ffmpeg.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/ffmpeg.c b/ffmpeg.c +index ed192ca..0f80a09 100644 +--- a/ffmpeg.c ++++ b/ffmpeg.c +@@ -296,9 +296,9 @@ struct ffmpeg *ffmpeg_open(char *ffmpeg_video_codec, char *filename, + c->codec_id == MY_CODEC_ID_HEVC){ + av_dict_set(&opts, "preset", "ultrafast", 0); + +- /* transforrm vbr (2 - 31) into crf (0 - 51) by scaling */ ++ /* transform vbr (1 - 32767) into crf (0 - 51) by scaling */ + char crf[4]; +- snprintf(crf, 4, "%d", (int) ((vbr - 2) * 1.758)); ++ snprintf(crf, 4, "%d", (int) ((vbr - 1) * 51.0 / 32766)); + + av_dict_set(&opts, "tune", "zerolatency", 0); + } From 6ac039f8e5c536eaaf935326a1b58fab9b23f4df Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Fri, 8 Jul 2016 19:19:07 +0300 Subject: [PATCH 4/4] patches must start with an order number --- .../{h264-crf-from-vbr.patch => 001-h264-crf-from-vbr.patch} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename package/motion-mrdave/{h264-crf-from-vbr.patch => 001-h264-crf-from-vbr.patch} (100%) diff --git a/package/motion-mrdave/h264-crf-from-vbr.patch b/package/motion-mrdave/001-h264-crf-from-vbr.patch similarity index 100% rename from package/motion-mrdave/h264-crf-from-vbr.patch rename to package/motion-mrdave/001-h264-crf-from-vbr.patch