/*
* myLib - https://github.com/taktod/myLib
* Copyright (c) 2014 ttProject. All rights reserved.
*
* Licensed under GNU GENERAL PUBLIC LICENSE Version 3.
*/
package com.ttProject.xuggle.test;
import org.apache.log4j.Logger;
import org.junit.Test;
import com.ttProject.container.IContainer;
import com.ttProject.container.IReader;
import com.ttProject.container.IWriter;
import com.ttProject.container.flv.FlvTagReader;
import com.ttProject.container.flv.type.AudioTag;
import com.ttProject.container.flv.type.VideoTag;
import com.ttProject.container.mkv.MkvTagWriter;
import com.ttProject.frame.CodecType;
import com.ttProject.nio.channels.FileReadChannel;
import com.ttProject.nio.channels.IReadChannel;
/**
* frame convert by xuggle
* @author taktod
*/
public class ConvertTest {
/** ロガー */
private Logger logger = Logger.getLogger(ConvertTest.class);
/**
* @throws Exception
*/
@Test
public void test() throws Exception {
logger.info("convert test");
IReadChannel source = FileReadChannel.openFileReadChannel(
"http://49.212.39.17/mario.flv"
);
IReader reader = new FlvTagReader();
IWriter writer = new MkvTagWriter("output.mkv");
writer.prepareHeader(CodecType.H264, CodecType.AAC);
IContainer container = null;
while((container = reader.read(source)) != null) {
if(container instanceof VideoTag) {
VideoTag vTag = (VideoTag)container;
writer.addFrame(0x09, vTag.getFrame());
}
else if(container instanceof AudioTag) {
AudioTag aTag = (AudioTag)container;
writer.addFrame(0x08, aTag.getFrame());
}
}
writer.prepareTailer();
logger.info("end");
}
}