import com.on2.flixengine_com.*;
public class cli_encode {
static IFlix flix;
private static void init() {
try {
flix = ClassFactory.createFlix();
} catch(RuntimeException e) {
e.printStackTrace();
System.exit(1);
}
}
private static void printStackTrace(RuntimeException e) {
e.printStackTrace();
printEncoderStatus();
System.exit(1);
}
public static void main(String[] args) {
init();
try {
System.out.println("Flix Engine COM library. Flix Engine v" +
flix.version() + " COM v" + flix.com_version());
System.out.println(flix.copyright() + "\n");
} catch(RuntimeException e) {
printStackTrace(e);
}
if (args.length != 2) {
System.out.println("usage: java -classpath "+
"flixengine_com.jar;com4j.jar;."+
" cli_encode <infile> <outfile>\n");
System.exit(1);
}
try {
System.out.println("Input File : " + args[0]);
flix.setInputFile(args[0]);
} catch(RuntimeException e) {
printStackTrace(e);
}
try {
IVideoOptions vidOpts = flix.videoOptions();
int width = vidOpts.getSourceWidth();
int height = vidOpts.getSourceHeight();
int duration = flix.getSourceDuration();
System.out.println(" Width: " + width + "\n" +
" Height: " + height + "\n" +
" Duration: " + duration + "ms");
} catch(RuntimeException e) {
printStackTrace(e);
}
try {
flix.setOutputFile(args[1]);
System.out.println("Output File : " + args[1]);
} catch(RuntimeException e) {
printStackTrace(e);
}
try {
flix.encode();
IEncodingStatus status = flix.encodingStatus();
System.out.println();
boolean ier;
do {
try {Thread.currentThread().sleep(500);}
catch(InterruptedException e) {}
ier = flix.isEncoderRunning()==1;
System.out.print("\rEncoding... "+status.percentComplete()+"% ");
} while(ier);
System.out.println("Done!");
printEncoderStatus();
} catch(RuntimeException e) {
System.out.println(e);
printEncoderStatus();
}
flix.dispose(); flix = null;
com4j.COM4J.cleanUp();
}
private static void printEncoderStatus() {
System.out.println("\nEncoder Status");
FE2_EncState res = flix.getEncoderState();
System.out.println(" flix.getEncoderState: " + res );
System.out.println(" flix.errno_: flixerrno:" + flix.flixerrno() +
" syserrno:" + flix.syserrno());
}
}