Могу ли я использовать Xuggler для кодирования видео / аудио в байтовый массив? - PullRequest
2 голосов
/ 17 сентября 2010

Кажется, все методы ожидают либо файлы, либо URL.Я вижу некоторые методы, которые работают с OutputStream, но мне не удалось открыть IContainer, используя один из этих методов;Я всегда получаю неверное возвращаемое значение.

Ответы [ 2 ]

1 голос
/ 02 октября 2010

Создайте свой собственный интерфейс IURLProtocolHandler и перейдите к IContainer.open (...), чтобы открыть любой тип носителя, который вы хотите.

0 голосов
/ 29 мая 2014

Вы можете посмотреть этот ответ Я отправил другой вопрос, чтобы написать в OutputStream (который может быть просто ByteArrayOutputStream).

Суть этого в том, чтобы использовать com.xuggle.xuggler.io.XugglerIO для сопоставления OutputStream с URL-адресом файла специального вида, чтобы FFMPEG мог получить доступ к потоку.

IMediaWriter writer = ToolFactory.makeWriter(XugglerIO.map(outputStream));

Имейте в виду, что теперь вам придется вручную устанавливать формат (потому что он не может определить его по имени файла). Например:

IContainerFormat containerFormat = IContainerFormat.make();
containerFormat.setOutputFormat("ogg", null, "application/ogg");
writer.getContainer().setFormat(containerFormat);
...