Frage

Ich versuche, eine einfache Anwendung mit Xuggler zu erstellen, die eine Sequenz von Bildern in Video codieren muss. Ich habe Xuggler installiert, wie in offizieller Website beschrieben. Hier ist ein Beispiel für Code (den ich tatsächlich auf der Xuggler -Wiki -Website gefunden habe)

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();

    }

}

Nach dem Start habe ich eine Ausnahme:

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)

Könnten Sie mir etwas beraten, um dieses Problem zu lösen? Vielen Dank

War es hilfreich?

Lösung

Xuggler beschwert sich darüber, dass er keinen Konverter für das BufferedImage finden kann.

Erstellen Sie die Bufferedimage mit BufferedImage.TYPE_3BYTE_BGR Anstatt von BufferedImage.TYPE_INT_RGB

Sehen http://wiki.xugge.com/encoding_video_from_a_sequence_of_images für mehr Informationen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top