Repository: openmeetings
Updated Branches:
  refs/heads/master f042e33aa -> 613912bf7


[OPENMEETINGS-495] settings for audio bitrate and sample rate are added


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/613912bf
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/613912bf
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/613912bf

Branch: refs/heads/master
Commit: 613912bf78708a432736bcaa6fccdda144d952fc
Parents: f042e33
Author: Maxim Solodovnik <[email protected]>
Authored: Mon Nov 13 18:02:39 2017 +0700
Committer: Maxim Solodovnik <[email protected]>
Committed: Mon Nov 13 18:02:59 2017 +0700

----------------------------------------------------------------------
 .../core/converter/BaseConverter.java           |  8 +++++---
 .../db/dao/basic/ConfigurationDao.java          | 18 ++++++++++++++++++
 .../installation/ImportInitvalues.java          |  6 ++++++
 .../util/OpenmeetingsVariables.java             | 20 ++++++++++++++++++++
 4 files changed, 49 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/613912bf/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index 2417593..8a5c92b 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -27,6 +27,8 @@ import static 
org.apache.openmeetings.util.OmFileHelper.getStreamsSubDir;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_FFMPEG;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_IMAGEMAGIC;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_SOX;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getAudioBitrate;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getAudioRate;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 
 import java.io.File;
@@ -280,7 +282,7 @@ public abstract class BaseConverter {
                                        String[] argv = new String[] {
                                                        getPathToFFMPEG(), "-y"
                                                        , "-i", 
inputFlvFile.getCanonicalPath()
-                                                       , "-af", 
"aresample=32k:min_comp=0.001:min_hard_comp=0.100000"
+                                                       , "-af", 
String.format("aresample=%s:min_comp=0.001:min_hard_comp=0.100000", 
getAudioBitrate())
                                                        , 
outputWav.getCanonicalPath()};
 
                                        
logs.add(ProcessHelper.executeScript("stripAudioFromFLVs", argv));
@@ -376,8 +378,8 @@ public abstract class BaseConverter {
                                "-profile:v", "baseline",
                                "-c:a", "libfaac",
                                "-c:a", "libfdk_aac",
-                               "-ar", "22050",
-                               "-b:a", "32k",
+                               "-ar", String.valueOf(getAudioRate()),
+                               "-b:a", getAudioBitrate(),
                                "-s", getDimensions(r), //
                                mp4path
                                ));

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/613912bf/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 5c0c080..7ecbbcd 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -39,6 +39,8 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_EXCLUSIVE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_MUTE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_BITRATE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_RATE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_BASE_URL;
@@ -57,6 +59,8 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getRoomSettings
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setApplicationName;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setAudioBitrate;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.setAudioRate;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.setBaseUrl;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setCryptClassName;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setDefaultLang;
@@ -330,6 +334,10 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                                break;
                        case CONFIG_DEFAULT_LANG:
                                reloadDefaultLang();
+                       case CONFIG_MP4_AUDIO_RATE:
+                               reloadAudioRate();
+                               break;
+                       case CONFIG_MP4_AUDIO_BITRATE:
                                break;
                }
                return entity;
@@ -377,6 +385,14 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                setDefaultLang(getLong(CONFIG_DEFAULT_LANG, 1L));
        }
 
+       private void reloadAudioRate() {
+               setAudioRate(getInt(CONFIG_MP4_AUDIO_RATE, 22050));
+       }
+
+       private void reloadAudioBitrate() {
+               setAudioBitrate(getString(CONFIG_MP4_AUDIO_BITRATE, "32k"));
+       }
+
        public void reinit() {
                reloadMaxUpload();
                reloadCrypt();
@@ -385,6 +401,8 @@ public class ConfigurationDao implements 
IDataProviderDao<Configuration> {
                reloadBaseUrl();
                reloadSipEnabled();
                reloadGaCode();
+               reloadAudioRate();
+               reloadAudioBitrate();
                reloadRoomSettings();
        }
 

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/613912bf/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 606220a..4cfde7b 100644
--- 
a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ 
b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -56,6 +56,8 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_KEYCODE_MUTE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_BITRATE;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MP4_AUDIO_RATE;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MYROOMS_ENABLED;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PASS_MIN_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_FFMPEG;
@@ -89,6 +91,8 @@ import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_CSP_SELF
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.HEADER_XFRAME_SAMEORIGIN;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.USER_PASSWORD_MINIMUM_LENGTH;
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getAudioBitrate;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.getAudioRate;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getExtProcessTtl;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
 
@@ -331,6 +335,8 @@ public class ImportInitvalues {
                addCfg(list, CONFIG_EXT_PROCESS_TTL, 
String.valueOf(getExtProcessTtl()), Configuration.Type.number, 
String.format("Time to live in minutes for external processes such as 
conversion via ffmpeg (default %s minutes)", getExtProcessTtl()), VER_3_3_0);
                addCfg(list, CONFIG_MYROOMS_ENABLED, String.valueOf(true), 
Configuration.Type.bool, "Users are allowed to create personal rooms", "3.3.2");
                addCfg(list, CONFIG_REMINDER_MESSAGE, null, 
Configuration.Type.string, "Reminder message to notify about upcoming 
appointment, generated message will be used if not set", VER_2_0);
+               addCfg(list, CONFIG_MP4_AUDIO_RATE, 
String.valueOf(getAudioRate()), Configuration.Type.number, "Audio sampling rate 
(in Hz) for MP4 video", "4.0.1");
+               addCfg(list, CONFIG_MP4_AUDIO_BITRATE, 
String.valueOf(getAudioBitrate()), Configuration.Type.string, "Audio bitrate 
for MP4 video", "4.0.1");
                return list;
        }
        public void loadConfiguration(InstallationConfig cfg) {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/613912bf/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
index 7b2cdaf..8e9adba 100644
--- 
a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
+++ 
b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
@@ -88,6 +88,8 @@ public class OpenmeetingsVariables {
        public static final String CONFIG_KEYCODE_MUTE = "mute.keycode";
        public static final String CONFIG_MYROOMS_ENABLED = 
"personal.rooms.enabled";
        public static final String CONFIG_REMINDER_MESSAGE = "reminder.message";
+       public static final String CONFIG_MP4_AUDIO_RATE = "mp4.audio.rate";
+       public static final String CONFIG_MP4_AUDIO_BITRATE = 
"mp4.audio.bitrate";
 
        public static final String HEADER_XFRAME_SAMEORIGIN = "SAMEORIGIN";
        public static final String HEADER_CSP_SELF = "default-src 'self'; 
style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 
'unsafe-eval'; img-src 'self' data:;";
@@ -122,6 +124,8 @@ public class OpenmeetingsVariables {
        private static boolean sipEnabled = false;
        private static String gaCode = null;
        private static Long defaultLang = 1L;
+       private static int audioRate = 22050;
+       private static String audioBitrate = "32k";
 
        private OpenmeetingsVariables() {}
 
@@ -224,4 +228,20 @@ public class OpenmeetingsVariables {
        public static void setDefaultLang(Long lang) {
                defaultLang = lang;
        }
+
+       public static int getAudioRate() {
+               return audioRate;
+       }
+
+       public static void setAudioRate(int rate) {
+               audioRate = rate;
+       }
+
+       public static String getAudioBitrate() {
+               return audioBitrate;
+       }
+
+       public static void setAudioBitrate(String bitrate) {
+               audioBitrate = bitrate;
+       }
 }

Reply via email to