X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fencoder%2Fconverters%2FAvconvVideo.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fencoder%2Fconverters%2FAvconvVideo.java;h=ea08e5d903528e50520cc20b58499b818a1e3a29;hb=0679806fed21137dc0d10f1ef99dc1bba73ddb95;hp=f0d80bfdd674b1c97bc605c7f4790d164e94143c;hpb=1e0cf70d1d09bbb04fbdecaf73e35b2b6a8bb606;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java b/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java index f0d80bf..ea08e5d 100644 --- a/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java +++ b/src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java @@ -18,10 +18,11 @@ import eu.svjatoslav.meviz.encoder.EncodingOptions; public class AvconvVideo extends AbstractConverter { - private void constructCodecParamsString(final EncodingOptions options, + private String constructCodecParamsString(final EncodingOptions options, final int videoBitrate, final int audioBitrate, - final StringBuffer codecParams, final String videoCodec, - final String audioCodec) { + final String videoCodec, final String audioCodec) { + + StringBuffer codecParams = new StringBuffer(); if (audioCodec == null) codecParams.append("-an "); @@ -38,6 +39,8 @@ public class AvconvVideo extends AbstractConverter { if (options.deinterlace) codecParams.append("-filter:v yadif "); + + return codecParams.toString(); } private int getAudioBitrateValue(final BitrateParameter.bitrate bitRate) { @@ -65,7 +68,7 @@ public class AvconvVideo extends AbstractConverter { @Override public String getCommand(final File inputFile, final File targetFile, - final EncodingOptions options) { + final EncodingOptions options, String targetFormat) { int videoBitrate = getVideoBitrateValue(options.getVideoBitrate()); int audioBitrate = getAudioBitrateValue(options.getAudioBitrate()); @@ -76,6 +79,11 @@ public class AvconvVideo extends AbstractConverter { String videoCodec = "libx264"; String audioCodec = "libmp3lame"; + if (targetFormat.equals("webm")) { + videoCodec = "vp9"; + audioCodec = "opus"; + } + if (options.getVideoBitrate() == bitrate.COPY) videoCodec = "copy"; @@ -92,8 +100,8 @@ public class AvconvVideo extends AbstractConverter { codecParams.append("-s 640x480 "); } - constructCodecParamsString(options, videoBitrate, audioBitrate, - codecParams, videoCodec, audioCodec); + codecParams.append(constructCodecParamsString(options, videoBitrate, + audioBitrate, videoCodec, audioCodec)); return "avconv -i \"" + inputFile.getAbsolutePath() + "\" " + codecParams.toString() + "\"" + targetFile.getAbsolutePath() @@ -102,12 +110,14 @@ public class AvconvVideo extends AbstractConverter { @Override public List getSourceFileExtensions() { - return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v"); + return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v", + "webm"); } @Override public List getTargetFileExtensions() { - return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v"); + return toList("mkv", "mts", "mp4", "avi", "mpg", "mpeg", "vob", "m4v", + "webm"); } private int getVideoBitrateValue(final BitrateParameter.bitrate bitRate) {