我试图使用jcodec

时间:2017-06-02 11:11:16

标签: java youtube jcodec

我试图使用Jcodec将一组图像转换为视频,在youtube上看到正确运行的视频。我做了他们展示的一切。但是代码没有用。请帮助。我发布了视频,代码和错误的链接。

视频链接:https://www.youtube.com/watch?v=NYhnqE3E4CI

java代码:

package imagetovideoencoder;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.jcodec.api.awt.AWTSequenceEncoder;
import org.jcodec.api.SequenceEncoder;
import org.jcodec.common.io.NIOUtils;
import org.jcodec.common.io.SeekableByteChannel;
import org.jcodec.scale.AWTUtil;
import org.jcodec.common.*;

/**
 *
 * @author dell
 */
public class ImagetoVideoEncoder {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {

        AWTSequenceEncoder enc = AWTSequenceEncoder.createSequenceEncoder(new File("C:\\Users\\dell\\Desktop\\Downloads from seenium\\test.mp4"));
        enc.getEncoder().setKeyInterval(25);
        int framestoEncode = 100;


        for(int i=1;i<=framestoEncode/2;++i)
        {
            BufferedImage image = ImageIO.read(new File("C:/Users/dell/Desktop/Downloads from seenium/0f1f4905877e9a5e92b069c966059cce.jpg"));
            enc.encodeImage(image);
        }

        for(int i=1;i<=framestoEncode/2;++i)
        {
            BufferedImage image = ImageIO.read(new File("C:/Users/dell/Desktop/Downloads from seenium/54cae4238a5cf_-_american-muscle-facts-05-0312-xln.jpg"));
            enc.encodeImage(image);
        }

        enc.finish();
    }

}

错误:     运行:

  

线程中的异常&#34; main&#34; java.lang.NoSuchMethodError:org.jcodec.api.SequenceEncoder。(Lorg / jcodec / common / io / SeekableByteChannel;)V           at org.jcodec.api.awt.AWTSequenceEncoder。(AWTSequenceEncoder.java:27)           at org.jcodec.api.awt.AWTSequenceEncoder.createSequenceEncoder(AW​​TSequenceEncoder.java:23)           at imagetovideoencoder.ImagetoVideoEncoder.main(ImagetoVideoEncoder.java:30)       C:\ Users \ dell \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ executor-snippets \ run.xml:53:Java返回:1       建筑失败(总时间:9秒)

1 个答案:

答案 0 :(得分:0)

以上代码有效。将图像编码为视频的正确方法。这是Jens在其中一个答案中建议的不兼容的JAR文件的问题。所以我删除了添加的JAR文件并重复了视频中显示的步骤。有效。我唯一注意到的是图像需要具有相同的尺寸。所以我只是运行了一个小函数来将图像调整到相同的大小。它工作正常。