X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fgrabmemcard%2FMain.java;h=e5383387992606d77c22862a074a8c9b94cb0b38;hb=34e6964d7b230e1943b14a7107fc73861ab65220;hp=d7f866ea8268688d4ceaca1bd1d7bc10002340a5;hpb=50cb7085d553fdd82cd06806cd27b1675299f719;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/grabmemcard/Main.java b/src/main/java/eu/svjatoslav/meviz/grabmemcard/Main.java index d7f866e..e538338 100755 --- a/src/main/java/eu/svjatoslav/meviz/grabmemcard/Main.java +++ b/src/main/java/eu/svjatoslav/meviz/grabmemcard/Main.java @@ -1,7 +1,7 @@ /* * Meviz - Various tools collection to work with multimedia. * Copyright (C) 2012, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * + * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public License * as published by the Free Software Foundation. @@ -17,11 +17,12 @@ import java.util.GregorianCalendar; import eu.svjatoslav.commons.file.CommonPathResolver; import eu.svjatoslav.commons.file.FilePathParser; import eu.svjatoslav.meviz.Module; +import eu.svjatoslav.meviz.encoder.BitrateParameter; import eu.svjatoslav.meviz.encoder.EncodingOptions; import eu.svjatoslav.meviz.encoder.EncodingPlan; import eu.svjatoslav.meviz.encoder.EncodingTask; -import eu.svjatoslav.meviz.encoder.converters.Converter; -import eu.svjatoslav.meviz.encoder.converters.Mts2Mp4; +import eu.svjatoslav.meviz.encoder.converters.AbstractConverter; +import eu.svjatoslav.meviz.encoder.converters.AvconvVideo; public class Main implements Module { @@ -31,8 +32,7 @@ public class Main implements Module { } public File[] getDiskVideos(final File file) { - final String videosPath = file.getAbsolutePath() - + "/AVCHD/BDMV/STREAM/"; + final String videosPath = file.getAbsolutePath() + "/AVCHD/BDMV/STREAM/"; final File videosDirectory = new File(videosPath); if (!videosDirectory.exists()) @@ -48,6 +48,13 @@ public class Main implements Module { return valueString; }; + private EncodingOptions getEncodingOptions() { + final EncodingOptions options = new EncodingOptions(); + options.setVideoBitrate(BitrateParameter.bitrate.COPY); + options.setAudioBitrate(BitrateParameter.bitrate.COPY); + return options; + } + @Override public String getModuleCommand() { return "grabmemcard"; @@ -59,19 +66,14 @@ public class Main implements Module { final GregorianCalendar calendar = new GregorianCalendar(); final StringBuffer directoryName = new StringBuffer(); - directoryName.append(calendar.get(GregorianCalendar.YEAR) + "." - + getDoubleDigit(calendar.get(GregorianCalendar.MONTH) + 1) - + "." - + getDoubleDigit(calendar.get(GregorianCalendar.DAY_OF_MONTH)) - + " "); - - directoryName.append(getDoubleDigit(now.getHours()) + ":" - + getDoubleDigit(now.getMinutes()) + ":" + directoryName.append( + calendar.get(GregorianCalendar.YEAR) + "." + getDoubleDigit(calendar.get(GregorianCalendar.MONTH) + 1) + + "." + getDoubleDigit(calendar.get(GregorianCalendar.DAY_OF_MONTH)) + " "); + + directoryName.append(getDoubleDigit(now.getHours()) + ":" + getDoubleDigit(now.getMinutes()) + ":" + getDoubleDigit(now.getSeconds())); - final String targetDirectoryPath = CommonPathResolver - .getDesktopDirectory().getAbsolutePath() - + "/" + final String targetDirectoryPath = CommonPathResolver.getDesktopDirectory().getAbsolutePath() + "/" + directoryName.toString() + "/"; System.out.println("Target directory path: " + targetDirectoryPath); @@ -79,40 +81,44 @@ public class Main implements Module { return new File(targetDirectoryPath); } + private File getTargetFile(final File targetDirectory, final File sourceFile) { + // compute target file path + final StringBuffer targetFilePath = new StringBuffer(); + targetFilePath.append(targetDirectory.getAbsolutePath()); + targetFilePath.append("/"); + targetFilePath.append(FilePathParser.getFileNameWithoutExtension(sourceFile)); + targetFilePath.append(".mp4"); + final File targetFile = new File(targetFilePath.toString()); + return targetFile; + } + @Override public void run(final String[] args) throws IOException { final File targetDirectory = getTargetDirectory(); targetDirectory.mkdirs(); - final Converter converter = new Mts2Mp4(); + final AbstractConverter converter = new AvconvVideo(); final EncodingPlan encodingPlan = new EncodingPlan(); - final File file = new File("/media"); + final String userName = System.getProperty("user.name"); + + final File file = new File("/media/" + userName + "/"); for (final File insertedDisk : file.listFiles()) { final File[] diskVideos = getDiskVideos(insertedDisk); for (final File sourceFile : diskVideos) { - // compute target file path - final StringBuffer targetFilePath = new StringBuffer(); - targetFilePath.append(targetDirectory.getAbsolutePath()); - targetFilePath.append("/"); - targetFilePath.append(FilePathParser - .getFileNameWithoutExtension(sourceFile)); - targetFilePath.append(".mp4"); - final File targetFile = new File(targetFilePath.toString()); - - final EncodingTask encodingTask = new EncodingTask(sourceFile, - targetFile, converter); + final File targetFile = getTargetFile(targetDirectory, sourceFile); + + final EncodingTask encodingTask = new EncodingTask(sourceFile, targetFile, converter, "mp4"); + encodingTask.setUseTerminal(true); encodingPlan.scheduleTask(encodingTask); } } - final EncodingOptions options = new EncodingOptions(); - - encodingPlan.execute(options); + encodingPlan.execute(getEncodingOptions()); } @Override