我正在尝试使用 xuggler 将图像列表编码为视频。我有一系列缓冲图像。我正在使用以下代码。
public void encodeImage(BufferedImage originalImage, long timestamp)
{
// BufferedImage worksWithXugglerBufferedImage = convertToType(originalImage, BufferedImage.TYPE_3BYTE_BGR);
BufferedImage worksWithXugglerBufferedImage = convertToType(originalImage, BufferedImage.TYPE_3BYTE_BGR);
IPacket packet = IPacket.make();
IConverter converter = ConverterFactory.createConverter(worksWithXugglerBufferedImage, IPixelFormat.Type.YUV420P);
IVideoPicture outFrame = converter.toPicture(worksWithXugglerBufferedImage, timestamp * 1000);
outFrame.setQuality(0);
outStreamCoder.encodeVideo(packet, outFrame, 0);
if (packet.isComplete())
outContainer.writePacket(packet);
}
问题是它返回给我以下错误..
[WARN] [NioProcessor-1] com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1204)
[WARN] [NioProcessor-1] com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1204)
[WARN] [NioProcessor-1] com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1204)
[WARN] [NioProcessor-1] com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1204)
[WARN] [NioProcessor-1] com.xuggle.xuggler - Got error: picture is not of the same width as this Coder (../../../../../../../csrc/com/xuggle/xuggler/StreamCoder.cpp:1204)
错误是由于outFrame
产生的,我检查了创建的框架的宽度和高度,与图片相同。任何人都可以帮助我或给我一个提示..
我使用了这里的源代码。谢谢。
http://wiki.xuggle.com/Encoding_Video_from_a_sequence_of_Images
最佳答案
问题是先生,您肯定错误地设置了输出流的高度和宽度。例如
outStreamCoder.setHeight(height);
outStreamCoder.setWidth(width);
您应该在此处正确输入视频高度,宽度也是如此。
关于java - 从 Xuggler 中的帧获取视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8665194/