X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fgrabmemcard%2FMain.java;h=e220e3e3abd79d7ed1f9463dd10e80721bee5a8f;hb=cf6e4ace4972f24f40f88ea12fcf99c763e4e40a;hp=ca78c4a1428e290c2247d167131b6374cca86bd0;hpb=bafe09c26e6ebb5fadf408ecd46bea79cd79e8f1;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 ca78c4a..e220e3e 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 - * + * Copyright (C) 2012 -- 2018, 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. @@ -9,11 +9,6 @@ package eu.svjatoslav.meviz.grabmemcard; -import java.io.File; -import java.io.IOException; -import java.util.Date; -import java.util.GregorianCalendar; - import eu.svjatoslav.commons.file.CommonPathResolver; import eu.svjatoslav.commons.file.FilePathParser; import eu.svjatoslav.meviz.Module; @@ -22,108 +17,109 @@ import eu.svjatoslav.meviz.encoder.EncodingOptions; import eu.svjatoslav.meviz.encoder.EncodingPlan; import eu.svjatoslav.meviz.encoder.EncodingTask; import eu.svjatoslav.meviz.encoder.converters.AbstractConverter; -import eu.svjatoslav.meviz.encoder.converters.Ffmpeg; +import eu.svjatoslav.meviz.encoder.converters.AvconvVideo; -public class Main implements Module { +import java.io.File; +import java.io.IOException; +import java.util.Date; +import java.util.GregorianCalendar; - @Override - public String getDescription() { - return "Convenience helper to retrieve contents of inserted memory card."; - } +public class Main implements Module { - public File[] getDiskVideos(final File file) { - final String videosPath = file.getAbsolutePath() - + "/AVCHD/BDMV/STREAM/"; - final File videosDirectory = new File(videosPath); + @Override + public String getDescription() { + return "Convenience helper to retrieve contents of inserted memory card."; + } - if (!videosDirectory.exists()) - return new File[0]; + private File[] getDiskVideos(final File file) { + final String videosPath = file.getAbsolutePath() + "/AVCHD/BDMV/STREAM/"; + final File videosDirectory = new File(videosPath); - return videosDirectory.listFiles(); - } + if (!videosDirectory.exists()) + return new File[0]; - public String getDoubleDigit(final int value) { - String valueString = Integer.toString(value); - if (valueString.length() == 1) - valueString = "0" + valueString; - return valueString; - }; + return videosDirectory.listFiles(); + } - @Override - public String getModuleCommand() { - return "grabmemcard"; - } + private String getDoubleDigit(final int value) { + String valueString = Integer.toString(value); + if (valueString.length() == 1) + valueString = "0" + valueString; + return valueString; + } - @SuppressWarnings("deprecation") - public File getTargetDirectory() { - final Date now = new Date(); - final GregorianCalendar calendar = new GregorianCalendar(); + private EncodingOptions getEncodingOptions() { + final EncodingOptions options = new EncodingOptions(); + options.setVideoBitrate(BitrateParameter.Bitrate.COPY); + options.setAudioBitrate(BitrateParameter.Bitrate.COPY); + return options; + } - final StringBuffer directoryName = new StringBuffer(); - directoryName.append(calendar.get(GregorianCalendar.YEAR) + "." - + getDoubleDigit(calendar.get(GregorianCalendar.MONTH) + 1) - + "." - + getDoubleDigit(calendar.get(GregorianCalendar.DAY_OF_MONTH)) - + " "); + @Override + public String getModuleCommand() { + return "grabmemcard"; + } - directoryName.append(getDoubleDigit(now.getHours()) + ":" - + getDoubleDigit(now.getMinutes()) + ":" - + getDoubleDigit(now.getSeconds())); + @SuppressWarnings("deprecation") + private File getTargetDirectory() { + final Date now = new Date(); + final GregorianCalendar calendar = new GregorianCalendar(); - final String targetDirectoryPath = CommonPathResolver - .getDesktopDirectory().getAbsolutePath() - + "/" - + directoryName.toString() + "/"; + String directoryName = (calendar.get(GregorianCalendar.YEAR) + "." + getDoubleDigit(calendar.get(GregorianCalendar.MONTH) + 1) + + "." + getDoubleDigit(calendar.get(GregorianCalendar.DAY_OF_MONTH)) + " ") + + getDoubleDigit(now.getHours()) + ":" + getDoubleDigit(now.getMinutes()) + ":" + + getDoubleDigit(now.getSeconds()); - System.out.println("Target directory path: " + targetDirectoryPath); + final String targetDirectoryPath = CommonPathResolver.getDesktopDirectory().getAbsolutePath() + "/" + + directoryName + "/"; - return new File(targetDirectoryPath); - } + System.out.println("Target directory path: " + targetDirectoryPath); - @Override - public void run(final String[] args) throws IOException { + return new File(targetDirectoryPath); + } - final File targetDirectory = getTargetDirectory(); - targetDirectory.mkdirs(); + private File getTargetFile(final File targetDirectory, final File sourceFile) { + // compute target file path + final StringBuilder targetFilePath = new StringBuilder(); + targetFilePath.append(targetDirectory.getAbsolutePath()); + targetFilePath.append("/"); + targetFilePath.append(FilePathParser.getFileNameWithoutExtension(sourceFile)); + targetFilePath.append(".mp4"); + return new File(targetFilePath.toString()); + } - final AbstractConverter converter = new Ffmpeg(); - final EncodingPlan encodingPlan = new EncodingPlan(); + @Override + public void run(final String[] args) throws IOException { - final String userName = System.getProperty("user.name"); + final File targetDirectory = getTargetDirectory(); + targetDirectory.mkdirs(); - // final File file = new File("/media/" + userName + "/"); + final AbstractConverter converter = new AvconvVideo(); + final EncodingPlan encodingPlan = new EncodingPlan(); - final File file = new File("/media/"); + final String userName = System.getProperty("user.name"); - for (final File insertedDisk : file.listFiles()) { - final File[] diskVideos = getDiskVideos(insertedDisk); + final File file = new File("/media/" + userName + "/"); - for (final File sourceFile : diskVideos) { + for (final File insertedDisk : file.listFiles()) { + final File[] diskVideos = getDiskVideos(insertedDisk); - // 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()); + for (final File sourceFile : diskVideos) { - final EncodingTask encodingTask = new EncodingTask(sourceFile, - targetFile, converter); - encodingPlan.scheduleTask(encodingTask); - } - } + final File targetFile = getTargetFile(targetDirectory, sourceFile); - final EncodingOptions options = new EncodingOptions(); - options.setVideoBitrate(BitrateParameter.bitrate.COPY); + final EncodingTask encodingTask = new EncodingTask(sourceFile, targetFile, converter, "mp4"); + encodingTask.setUseTerminal(true); + encodingPlan.scheduleTask(encodingTask); + } + } - encodingPlan.execute(options); - } + encodingPlan.execute(getEncodingOptions()); + } - @Override - public void showCommandlineHelp() { - System.out.println("memory card grabber has no commandline options"); - } + @Override + public void showCommandlineHelp() { + System.out.println("memory card grabber has no commandline options"); + } }