LGPL Xuggle: ConverterFactory.createConverter не поддерживается

Я использую Xuggle для создания потока mpeg-ts. Все работало хорошо, пока я не понял, что я использую версию ffmpeg под GPL, чего я не могу.

Поэтому я перекомпилировал всю библиотеку и удалил флаги --enable-nonfree и --enable-gpl из ffmpeg.

Дело в том, что теперь мой код выдаст мне ошибку.

Рассматриваемые строки:

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 выдавал нам предупреждения о том, что у нас нет аппаратного ускорения, все работало нормально.

Так что-то важное изменилось между этими версиями? И как я могу это преодолеть? Я искал в архиве, но пока не смог найти связанных вопросов.

Спасибо!

1 ответ

Проблема в том, что преобразователь цветового пространства, связанный с FFmpeg в Xuggle 3.x, активен ТОЛЬКО в режиме GPL. Почему FFmpeg это делает, я не знаю. Но это означает, что если вы не можете использовать версию FFmpeg под GPL, то вы не можете использовать конвертер цветового пространства в Xuggle (поскольку это то, что мы используем).

Другие вопросы по тегам