LGPL Xuggle:不支持ConverterFactory.createConverter

时间:2013-03-22 12:02:16

标签: java ffmpeg xuggler xuggle

我正在使用Xuggle创建一个mpeg-ts流。 一切都很好,直到我意识到我使用的是ffmpeg的GPL版本,我不能。

所以我重新编译了整个库,并从ffmpeg中删除了--enable-nonfree和--enable-gpl标志。

问题是现在我的代码会给我一个错误。

有问题的行是:

image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
IVideoPicture outFrame = ConverterFactory.createConverter(image, IPixelFormat.Type.YUV420P).toPicture(image, timeStamp);

我得到的错误是

java.lang.UnsupportedOperationException: Converter class com.xuggle.xuggler.video.BgrConverter constructor failed with: java.lang.IllegalArgumentException: IVideoResampler not supported in this build
    at com.xuggle.xuggler.video.ConverterFactory.createConverter(ConverterFactory.java:347)

问题是我们在Xuggle的3.3版本中使用相同的代码,即使ffmpeg向我们发出警告,说我们没有硬件加速,但一切都运行正常。

那些版本之间做了哪些重要的改变? 我怎么能克服这个?我在档案中搜索但到目前为止找不到相关问题。

谢谢!

1 个答案:

答案 0 :(得分:2)

问题是与Xuggle 3.x中的FFmpeg捆绑在一起的色彩空间转换器仅在GPL模式下有效。为什么FFmpeg这样做,我不知道。但这意味着如果你不能使用Gmp版本的FFmpeg,那么就不能在Xuggle中使用色彩空间转换器了(因为这就是我们使用的)。