1

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

所以我重新编译了整个库,并从 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)

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

那么这些版本之间有什么重要的变化吗?我该如何克服呢?我在存档中搜索,但到目前为止找不到相关问题。

谢谢!

4

1 回答 1

2

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

于 2013-03-24T20:24:29.107 回答