/* * myLib - https://github.com/taktod/myLib * Copyright (c) 2014 ttProject. All rights reserved. * * Licensed under GNU GENERAL PUBLIC LICENSE Version 3. */ package com.ttProject.myLib.setup; import org.apache.log4j.Logger; import org.junit.Test; import com.xuggle.xuggler.IContainer; import com.xuggle.xuggler.IStreamCoder; /** * setup for container. * @author taktod */ public class SetupForContainerTest extends SetupBase { /** logger */ private Logger logger = Logger.getLogger(SetupForContainerTest.class); @Test public void adts() throws Exception { logger.info("adts setup (aac)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.adts", "test.aac.aac"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.aac(container)); } @Test public void avi() throws Exception { logger.info("avi setup (mjpeg)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.mjpeg.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.mjpeg(container), null); logger.info("avi setup (adpcm)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.adpcm_ima_wav.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.adpcm_ima_wav(container)); logger.info("avi setup (mjpeg / adpcm)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.mjpegadpcm_ima_wav.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.mjpeg(container), Encoder.adpcm_ima_wav(container)); logger.info("avi setup (flv1 / mp3)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.flv1mp3.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.mp3(container)); logger.info("avi setup (h264 / aac)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.h264aac.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("avi setup (h264 / pcm_alaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.h264pcm_alaw.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.pcm_alaw(container)); logger.info("avi setup (h264 / pcm_mulaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.h264pcm_mulaw.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.pcm_mulaw(container)); logger.info("avi setup (flv1 / speex)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.flv1speex.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.speex(container)); logger.info("avi setup (vp8 / vorbis)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.avi", "test.vp8vorbis.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.vp8(container), Encoder.vorbis(container)); } @Test public void flv() throws Exception { logger.info("flv setup (flv1)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), null); logger.info("flv setup (flv1 / mp3)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1mp3.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.mp3(container)); // mp3(8kHz) is valid, however, xuggle cannot deal with this. /* logger.info("flv setup (flv1 / mp38)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1mp38.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } IStreamCoder coder = Encoder.mp3(container); coder.setSampleRate(8000); processConvert(container, Encoder.flv1(container), coder);*/ logger.info("flv setup (flv1 / adpcmswf)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1adpcmswf.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.adpcm_swf(container)); logger.info("flv setup (flv1 / nelly8)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1nelly8.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } IStreamCoder coder = Encoder.nellymoser(container); coder.setSampleRate(8000); coder.setChannels(1); processConvert(container, Encoder.flv1(container), coder); logger.info("flv setup (flv1 / nelly16)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1nelly16.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.nellymoser(container); coder.setSampleRate(16000); coder.setChannels(1); processConvert(container, Encoder.flv1(container), coder); logger.info("flv setup (flv1 / nelly)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1nelly.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.nellymoser(container); coder.setChannels(1); processConvert(container, Encoder.flv1(container), coder); logger.info("flv setup (h264 / mp3)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.h264mp3.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.mp3(container)); logger.info("flv setup (h264 / aac)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.h264aac.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("flv setup (h264 / speex)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.h264speex.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.speex(container); coder.setSampleRate(16000); coder.setChannels(1); processConvert(container, Encoder.h264(container), coder); // alaw and mulaw is valid, however, xuggle cannot deal with this. /* logger.info("flv setup (flv1 / pcm_alaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1pcm_alaw.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.pcm_alaw(container)); logger.info("flv setup (flv1 / pcm_mulaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.flv1pcm_mulaw.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), Encoder.pcm_mulaw(container));*/ logger.info("flv setup (adpcm44_2)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm44_2.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(44100); coder.setChannels(2); processConvert(container, null, coder); logger.info("flv setup (adpcm44_1)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm44_1.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(44100); coder.setChannels(1); processConvert(container, null, coder); logger.info("flv setup (adpcm22_2)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm22_2.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(22050); coder.setChannels(2); processConvert(container, null, coder); logger.info("flv setup (adpcm22_1)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm22_1.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(22050); coder.setChannels(1); processConvert(container, null, coder); logger.info("flv setup (adpcm11_2)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm11_2.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(11025); coder.setChannels(2); processConvert(container, null, coder); logger.info("flv setup (adpcm11_1)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.flv", "test.adpcm11_1.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } coder = Encoder.adpcm_swf(container); coder.setSampleRate(11025); coder.setChannels(1); processConvert(container, null, coder); } @Test public void mkv() throws Exception { logger.info("mkv setup (h264 / mp3)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mkv", "test.h264mp3.mkv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.mp3(container)); logger.info("mkv setup (h264 / aac)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mkv", "test.h264aac.mkv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("mkv setup (mjpeg/adpcm_ima_wav)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mkv", "test.mjpegadpcmimawav.mkv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container。"); } processConvert(container, Encoder.mjpeg(container), Encoder.adpcm_ima_wav(container)); logger.info("mkv setup (theora/vorbis)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mkv", "test.theoravorbis.mkv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container。"); } processConvert(container, Encoder.theora(container), Encoder.vorbis(container)); logger.info("mkv setup (theora/speex)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mkv", "test.theoraspeex.mkv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container。"); } processConvert(container, Encoder.theora(container), Encoder.speex(container)); } @Test public void mp3() throws Exception { logger.info("mp3 setup (mp3)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mp3", "test.mp3.mp3"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.mp3(container)); } @Test public void mp4() throws Exception { logger.info("mp4 setup (h264 / aac)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mp4", "test.h264aac.mp4"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("mp4 setup (h264 / mp3)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mp4", "test.h264mp3.mp4"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.mp3(container)); } @Test public void mpegts() throws Exception { logger.info("mpegts setup (h264 / aac)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mpegts", "test.h264aac.ts"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("mpegts setup (h264 / mp3)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.mpegts", "test.h264mp3.ts"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); } @Test public void ogg() throws Exception { logger.info("ogg setup (vorbis)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.vorbis.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.vorbis(container)); logger.info("ogg setup (speex)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.speex.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.speex(container)); logger.info("ogg setup (speex8)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.speex8.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } IStreamCoder encoder = Encoder.speex(container); encoder.setSampleRate(8000); processConvert(container, null, encoder); logger.info("ogg setup (speex16)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.speex16.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } encoder = Encoder.speex(container); encoder.setSampleRate(16000); processConvert(container, null, encoder); logger.info("ogg setup (speex32)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.speex32.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } encoder = Encoder.speex(container); encoder.setSampleRate(32000); processConvert(container, null, encoder); logger.info("ogg setup (theora / vorbis)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.ogg", "test.theoravorbis.ogg"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.theora(container), Encoder.vorbis(container)); } @Test public void webm() throws Exception { logger.info("webm setup (vp8 / vorbis)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.webm", "test.webm"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.vp8(container), Encoder.vorbis(container)); } @Test public void wav() throws Exception { logger.info("wav setup (adpcm_ima_wav)"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.wav", "test.adpcm_ima_wav.wav"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.adpcm_ima_wav(container)); logger.info("wav setup (adpcm_ima_wav5k)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.wav", "test.adpcm_ima_wav5k.wav"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } IStreamCoder encoder = Encoder.adpcm_ima_wav(container); encoder.setSampleRate(5512); processConvert(container, null, encoder); logger.info("wav setup (pcm_alaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.wav", "test.pcm_alaw.wav"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.pcm_alaw(container)); logger.info("wav setup (pcm_mulaw)"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.wav", "test.pcm_mulaw.wav"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.pcm_mulaw(container)); } @Test public void test() throws Exception { logger.info("test aac(adts) setup"); init(); IContainer container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "aac.aac"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.aac(container)); logger.info("test aac(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "aac.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.aac(container)); logger.info("test mp3(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "mp3.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, null, Encoder.mp3(container)); logger.info("test speex(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "speex.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } IStreamCoder encoder = Encoder.speex(container); encoder.setSampleRate(16000); encoder.setChannels(1); processConvert(container, null, encoder); logger.info("test h264(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "h264.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), null); logger.info("test h264/aac(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "h264_aac.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.h264(container), Encoder.aac(container)); logger.info("test flv1(flv) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "flv1.flv"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.flv1(container), null); logger.info("test vp8 vorbis(avi) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "vp8vorbis.avi"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.vp8(container), Encoder.vorbis(container)); logger.info("test vp8 vorbis(webm) setup"); init(); container = IContainer.make(); if(container.open(getTargetFile("myLib.MIT/myLib.container.test", "vp8vorbis.webm"), IContainer.Type.WRITE, null) < 0) { throw new Exception("failed to open container"); } processConvert(container, Encoder.vp8(container), Encoder.vorbis(container)); } }