Repository: openmeetings Updated Branches: refs/heads/4.0.x c9837c3b2 -> 746a0a6c2
[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/746a0a6c Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/746a0a6c Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/746a0a6c Branch: refs/heads/4.0.x Commit: 746a0a6c28d12f57a17aac93e51bc846ca316cc7 Parents: c9837c3 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:39 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/746a0a6c/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/746a0a6c/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/746a0a6c/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/746a0a6c/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; + } }
