我正在尝试使用 jcodec 将图像转换为视频
I was trying to convert images to a video using jcodec
我正在尝试使用 Jcodec 将一组图像转换为视频,在 youtube 上看到一个 运行ning 正确的视频。我做了他们展示的一切。但是代码不起作用。请帮助。我将 link 发布到视频、我的代码和错误中。
视频link: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();
}
}
错误:
运行:
Exception in thread "main" 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(AWTSequenceEncoder.java:23)
at imagetovideoencoder.ImagetoVideoEncoder.main(ImagetoVideoEncoder.java:30)
C:\Users\dell\AppData\Local\NetBeans\Cache.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 9 seconds)
以上代码有效。一种将图像编码为视频的正确方法。正如 Jens 在其中一个答案中所建议的那样,这是 JAR 文件不兼容的问题。所以我删除了添加的 JAR 文件并重复了视频中显示的步骤。有效。我唯一注意到的是图像需要具有相同的大小。所以我只是 运行 一个小函数来将图像调整为相同大小。它工作正常。
我正在尝试使用 Jcodec 将一组图像转换为视频,在 youtube 上看到一个 运行ning 正确的视频。我做了他们展示的一切。但是代码不起作用。请帮助。我将 link 发布到视频、我的代码和错误中。
视频link: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();
}
}
错误: 运行:
Exception in thread "main" 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(AWTSequenceEncoder.java:23) at imagetovideoencoder.ImagetoVideoEncoder.main(ImagetoVideoEncoder.java:30) C:\Users\dell\AppData\Local\NetBeans\Cache.2\executor-snippets\run.xml:53: Java returned: 1 BUILD FAILED (total time: 9 seconds)
以上代码有效。一种将图像编码为视频的正确方法。正如 Jens 在其中一个答案中所建议的那样,这是 JAR 文件不兼容的问题。所以我删除了添加的 JAR 文件并重复了视频中显示的步骤。有效。我唯一注意到的是图像需要具有相同的大小。所以我只是 运行 一个小函数来将图像调整为相同大小。它工作正常。