2013-03-22 3 views
1

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

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

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

Спасибо!

+0

У меня возникли проблемы даже с созданием версии LGPL файла баннера Xuggler. У вас есть тот, на котором вы можете поделиться @jlengrand? – 11101101b

+0

Извините за поздний ответ. Моя версия LGPL содержит некоторые исправления, но я постараюсь сделать ее доступной вам скоро. – jlengrand

+0

Это было бы очень полезно! Спасибо @jlengrand! – 11101101b

ответ

2

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

+0

Спасибо за ответ. Это то, чего я боялся. Итак, какая работа может быть применена? Как пользователи Xuggle обычно делают это в этом случае? Я не мог найти информацию об этом: s – jlengrand

Смежные вопросы