Use FFMpeg instead of Avconv
[meviz.git] / src / main / java / eu / svjatoslav / meviz / encoder / converters / AvconvVideo.java
diff --git a/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java b/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java
deleted file mode 100644 (file)
index e8ed780..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Meviz - Various tools collection to work with multimedia.
- * Copyright (C) 2012 -- 2019, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 3 of the GNU Lesser General Public License
- * or later as published by the Free Software Foundation.
-*/
-
-package eu.svjatoslav.meviz.encoder.converters;
-
-import eu.svjatoslav.meviz.encoder.BitrateParameter.Bitrate;
-import eu.svjatoslav.meviz.encoder.EncodingOptions;
-
-import java.io.File;
-import java.util.List;
-
-public class AvconvVideo extends AbstractConverter {
-
-    private String constructCodecParamsString(final EncodingOptions options,
-                                              final int videoBitrate, final int audioBitrate,
-                                              final String videoCodec, final String audioCodec) {
-
-        final StringBuilder codecParams = new StringBuilder();
-
-        if (audioCodec == null)
-            codecParams.append("-an ");
-        else
-            codecParams.append("-acodec " + audioCodec + " ");
-
-        codecParams.append("-vcodec " + videoCodec + " ");
-
-        if (videoBitrate != -1)
-            codecParams.append("-b " + videoBitrate + "k ");
-
-        if (audioBitrate != -1)
-            codecParams.append("-b:a " + audioBitrate + "k ");
-
-        if (options.isDeinterlace())
-            codecParams.append("-filter:v yadif ");
-
-        if (options.getTargetFps() != null)
-            codecParams.append("-r " + options.getTargetFps() + " ");
-
-        return codecParams.toString();
-    }
-
-    private int getAudioBitrateValue(final Bitrate bitRate) {
-        switch (bitRate) {
-            case LOW:
-                return 128;
-
-            case MEDIUM:
-                return 160;
-
-            case HIGH:
-                return 320;
-
-            case COPY:
-                return -1;
-
-            case NONE:
-                return -1;
-
-            default:
-                throw new RuntimeException("Audio bitrate: " + bitRate
-                        + " is not supported.");
-        }
-    }
-
-    @Override
-    public String getCommand(final File inputFile, final File targetFile,
-                             final EncodingOptions options, final String targetFormat) {
-
-        int videoBitrate = getVideoBitrateValue(options.getVideoBitrate());
-        int audioBitrate = getAudioBitrateValue(options.getAudioBitrate());
-
-        // convert
-        final StringBuilder codecParams = new StringBuilder();
-
-        String videoCodec = "libx264";
-        String audioCodec = "libmp3lame";
-
-        if (targetFormat.equals("webm")) {
-            videoCodec = "vp8";
-            audioCodec = "opus";
-            codecParams.append("-s 800x450 ");
-        }
-
-        if (options.getVideoBitrate() == Bitrate.COPY)
-            videoCodec = "copy";
-
-        if (options.getAudioBitrate() == Bitrate.COPY)
-            audioCodec = "copy";
-
-        if (options.getAudioBitrate() == Bitrate.NONE)
-            audioCodec = null;
-
-        if (options.isForPortablePlayer()) {
-            videoBitrate = 1000;
-            audioBitrate = 128;
-            videoCodec = "libxvid";
-
-            // reduce resolution
-            codecParams.append("-s 640x480 ");
-
-            // enforce maximum keyframe interval
-            codecParams.append("-g 150 ");
-        }
-
-        codecParams.append(constructCodecParamsString(options, videoBitrate,
-                audioBitrate, videoCodec, audioCodec));
-
-        return "avconv -i \"" + inputFile.getAbsolutePath() + "\" "
-                + codecParams.toString() + "\"" + targetFile.getAbsolutePath()
-                + "\"";
-    }
-
-    @Override
-    public List<String> getSourceFileExtensions() {
-        return getSupportedExtensions();
-    }
-
-    private List<String> getSupportedExtensions() {
-        return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v",
-                "webm", "mov", "asf", "3gp");
-    }
-
-    @Override
-    public List<String> getTargetFileExtensions() {
-        return getSupportedExtensions();
-    }
-
-    private int getVideoBitrateValue(final Bitrate bitRate) {
-        switch (bitRate) {
-            case LOW:
-                return 1000;
-
-            case MEDIUM:
-                return 4000;
-
-            case HIGH:
-                return 16000;
-
-            case COPY:
-                return -1;
-
-            default:
-                throw new RuntimeException("Video bitrate: " + bitRate
-                        + " is not supported.");
-        }
-    }
-
-    @Override
-    public boolean isTerminalMandatory() {
-        return true;
-    }
-
-}