我正在使用 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 向我们发出警告说我们没有硬件加速,但一切正常。
那么这些版本之间有什么重要的变化吗?我该如何克服呢?我在存档中搜索,但到目前为止找不到相关问题。
谢谢!