Added lossless flac audio support
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 23 Feb 2020 00:04:46 +0000 (02:04 +0200)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 23 Feb 2020 00:04:46 +0000 (02:04 +0200)
src/main/java/eu/svjatoslav/meviz/encoder/BitrateParameter.java
src/main/java/eu/svjatoslav/meviz/encoder/converters/FFMpegVideo.java

index c4a9e2a..683c130 100755 (executable)
@@ -20,7 +20,7 @@ public class BitrateParameter extends Parameter<BitrateParameter.Bitrate, Bitrat
 
     @Override
     public String describeFormat() {
 
     @Override
     public String describeFormat() {
-        return "Target bitrate [NONE / LOW / MEDIUM / HIGH / COPY ]";
+        return "Target bitrate [NONE / LOW / MEDIUM / HIGH / COPY / LOSSLESS]";
     }
 
     @Override
     }
 
     @Override
@@ -40,6 +40,6 @@ public class BitrateParameter extends Parameter<BitrateParameter.Bitrate, Bitrat
     }
 
     public enum Bitrate {
     }
 
     public enum Bitrate {
-        NONE, LOW, MEDIUM, HIGH, COPY
+        NONE, LOW, MEDIUM, HIGH, COPY, LOSSLESS
     }
 }
     }
 }
index 3cc3da9..5bf7562 100644 (file)
@@ -62,6 +62,9 @@ public class FFMpegVideo extends AbstractConverter {
             case NONE:
                 return -1;
 
             case NONE:
                 return -1;
 
+            case LOSSLESS:
+                return -1;
+
             default:
                 throw new RuntimeException("Audio bitrate: " + bitRate
                         + " is not supported.");
             default:
                 throw new RuntimeException("Audio bitrate: " + bitRate
                         + " is not supported.");
@@ -93,6 +96,11 @@ public class FFMpegVideo extends AbstractConverter {
         if (options.getAudioBitrate() == Bitrate.COPY)
             audioCodec = "copy";
 
         if (options.getAudioBitrate() == Bitrate.COPY)
             audioCodec = "copy";
 
+        if (options.getAudioBitrate() == Bitrate.LOSSLESS){
+            audioCodec = "flac";
+            codecParams.append("-strict -2 ");
+        }
+
         if (options.getAudioBitrate() == Bitrate.NONE)
             audioCodec = null;
 
         if (options.getAudioBitrate() == Bitrate.NONE)
             audioCodec = null;