Я пытаюсь создать простое приложение с Xuggler, которое должно кодировать последовательность изображений в видео.
Я установил xuggler, как описано на официальном сайте.
Вот пример кода (который я действительно нашел на вики-сайте Xuggler)
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.mediatool.ToolFactory;
import com.xuggle.xuggler.ICodec;
import static com.xuggle.xuggler.Global.DEFAULT_TIME_UNIT;
import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
public class Test {
private static final Logger log = LoggerFactory.getLogger(Test.class);
{
log.trace("<init>");
}
public static void main(String[] args) {
final long duration = DEFAULT_TIME_UNIT.convert( 3, SECONDS );
final int videoStreamIndex = 0;
final int videoStreamId = 0;
final long frameRate = DEFAULT_TIME_UNIT.convert(15, MILLISECONDS);
final int width = 320;
final int height = 200;
long nextFrameTime = 0;
final IMediaWriter writer = ToolFactory.makeWriter("/out.mov");
writer.addVideoStream(videoStreamIndex, videoStreamId,
width, height);
while ( nextFrameTime < duration )
{
BufferedImage frame = new BufferedImage( 320, 200, BufferedImage.TYPE_INT_RGB );
Graphics2D gr = (Graphics2D) frame.getGraphics();
gr.setColor(Color.RED);
gr.drawLine(0, 0, 200, 200);
writer.encodeVideo(videoStreamIndex, frame, nextFrameTime,
DEFAULT_TIME_UNIT);
nextFrameTime += frameRate;
}
writer.close();
}
}
После запуска у меня возникло исключение:
Exception in thread "main" java.lang.UnsupportedOperationException: No converter "null" found.
at com.xuggle.xuggler.video.ConverterFactory.createConverter(ConverterFactory.java:313)
at com.xuggle.mediatool.MediaWriter.convertToPicture(MediaWriter.java:967)
at com.xuggle.mediatool.MediaWriter.encodeVideo(MediaWriter.java:812)
at Test.main(Test.java:48)
Не могли бы вы посоветовать мне что-нибудь для решения этой проблемы?
Спасибо