projects
/
meviz.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use latest svjatoslavcommons
[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
index
87a7880
..
ea4d1d3
100644
(file)
--- a/
src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java
+++ b/
src/main/java/eu/svjatoslav/meviz/encoder/converters/AvconvVideo.java
@@
-18,13
+18,18
@@
import eu.svjatoslav.meviz.encoder.EncodingOptions;
public class AvconvVideo extends AbstractConverter {
public class AvconvVideo extends AbstractConverter {
- private
void
constructCodecParamsString(final EncodingOptions options,
+ private
String
constructCodecParamsString(final EncodingOptions options,
final int videoBitrate, final int audioBitrate,
final int videoBitrate, final int audioBitrate,
- final StringBuffer codecParams, final String videoCodec,
- final String audioCodec) {
+ final String videoCodec, final String audioCodec) {
- codecParams.append("-acodec " + audioCodec + " -vcodec " + videoCodec
- + " ");
+ StringBuffer codecParams = new StringBuffer();
+
+ if (audioCodec == null)
+ codecParams.append("-an ");
+ else
+ codecParams.append("-acodec " + audioCodec + " ");
+
+ codecParams.append("-vcodec " + videoCodec + " ");
if (videoBitrate != -1)
codecParams.append("-b " + videoBitrate + "k ");
if (videoBitrate != -1)
codecParams.append("-b " + videoBitrate + "k ");
@@
-34,6
+39,8
@@
public class AvconvVideo extends AbstractConverter {
if (options.deinterlace)
codecParams.append("-filter:v yadif ");
if (options.deinterlace)
codecParams.append("-filter:v yadif ");
+
+ return codecParams.toString();
}
private int getAudioBitrateValue(final BitrateParameter.bitrate bitRate) {
}
private int getAudioBitrateValue(final BitrateParameter.bitrate bitRate) {
@@
-50,6
+57,9
@@
public class AvconvVideo extends AbstractConverter {
case COPY:
return -1;
case COPY:
return -1;
+ case NONE:
+ return -1;
+
default:
throw new RuntimeException("Audio bitrate: " + bitRate
+ " is not supported.");
default:
throw new RuntimeException("Audio bitrate: " + bitRate
+ " is not supported.");
@@
-58,7
+68,7
@@
public class AvconvVideo extends AbstractConverter {
@Override
public String getCommand(final File inputFile, final File targetFile,
@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());
int videoBitrate = getVideoBitrateValue(options.getVideoBitrate());
int audioBitrate = getAudioBitrateValue(options.getAudioBitrate());
@@
-69,21
+79,35
@@
public class AvconvVideo extends AbstractConverter {
String videoCodec = "libx264";
String audioCodec = "libmp3lame";
String videoCodec = "libx264";
String audioCodec = "libmp3lame";
+ if (targetFormat.equals("webm")) {
+ videoCodec = "vp8";
+ audioCodec = "opus";
+ codecParams.append("-s 800x600 ");
+ }
+
if (options.getVideoBitrate() == bitrate.COPY)
videoCodec = "copy";
if (options.getAudioBitrate() == bitrate.COPY)
audioCodec = "copy";
if (options.getVideoBitrate() == bitrate.COPY)
videoCodec = "copy";
if (options.getAudioBitrate() == bitrate.COPY)
audioCodec = "copy";
+ if (options.getAudioBitrate() == bitrate.NONE)
+ audioCodec = null;
+
if (options.forPortablePlayer) {
videoBitrate = 1000;
audioBitrate = 128;
videoCodec = "libxvid";
if (options.forPortablePlayer) {
videoBitrate = 1000;
audioBitrate = 128;
videoCodec = "libxvid";
+
+ // reduce resolution
codecParams.append("-s 640x480 ");
codecParams.append("-s 640x480 ");
+
+ // enforce maximum keyframe interval
+ codecParams.append("-g 150 ");
}
}
- co
nstructCodecParamsString(options, videoBitrate, audi
oBitrate,
-
codecParams, videoCodec, audioCodec
);
+ co
decParams.append(constructCodecParamsString(options, vide
oBitrate,
+
audioBitrate, videoCodec, audioCodec)
);
return "avconv -i \"" + inputFile.getAbsolutePath() + "\" "
+ codecParams.toString() + "\"" + targetFile.getAbsolutePath()
return "avconv -i \"" + inputFile.getAbsolutePath() + "\" "
+ codecParams.toString() + "\"" + targetFile.getAbsolutePath()
@@
-92,12
+116,14
@@
public class AvconvVideo extends AbstractConverter {
@Override
public List<String> getSourceFileExtensions() {
@Override
public List<String> 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<String> getTargetFileExtensions() {
}
@Override
public List<String> 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) {
}
private int getVideoBitrateValue(final BitrateParameter.bitrate bitRate) {