Android квадратная видео запись с постобработкой

Я позволяю пользователям в моем приложении записывать видео, а затем публиковать его. По сути, все, что мне нужно, это чтобы видео было квадратным (с низким разрешением, что-то около 400x400), и когда запись будет завершена, тогда пользователь сможет изменять яркость / контрастность.

Я провел некоторое исследование по этому вопросу и нашел библиотеку ffmpeg, которая может это сделать. Но я не уверен, что я согласен с его лицензированием. Когда я использую ffmpeg, должен ли я также освобождать исходные коды моего приложения? Мое приложение будет бесплатным для загрузки и использования, но мне не нравятся его исходники.

Также и об этой квадратной записи - поскольку я поддерживаю API 14, Android не позволяет мне напрямую настраивать разрешение. Есть 2 способа, о которых я думаю:

  1. Запишите видеофайл в формате 640x480, затем измените размер / обрежьте и после этого разрешите пользователю выполнять постобработку. - для этого совершенно необходим ffmpeg
  2. Capture CameraPreviewFrames - обрезать их по ходу и рендерить в mp4-видео, а после рендеринга видео позволить пользователю продолжить его обработку - для этого также потребуется ffmpeg.

Тогда мой вопрос - могу ли я использовать ffmpeg, не беспокоясь о лицензировании и т.д.? Или есть какая-то другая библиотека, которая позволяет мне делать выше и открыта для использования?

Спасибо большое

2 ответа

Я не юрист, и это не юридическая консультация. Вы должны проконсультироваться со своим адвокатом для реальной юридической консультации.

FFmpeg это LGPL. Вы должны прочитать лицензию; это несколько более читабельно, чем большинство легальных.

LGPL отличается от GPL тем, что вы не обязаны распространять свой исходный код, если вы не включили исходный код FFmpeg в свой проект. Чтобы достичь этого, вы должны использовать FFmpeg в качестве так называемой динамической библиотеки ссылок (например, .so, .dylib, .framework, .dll и т. Д.). Это конфигурация по умолчанию.

Если вы изменяете источник FFmpeg, вы должны сделать его доступным.

Вы также должны соблюдать лицензионные / патентные лицензионные ограничения всех кодеков, которые вы компилируете с FFmpeg. Их можно различить с помощью параметров конфигурации FFmpeg, например --enable-gpl, Например, если вы используете эту опцию конфигурации, вы соглашаетесь распространять свой исходный код, а также исходный код FFmpeg, в соответствии с требованиями лицензии (й) этого кодека. (В случае x264, я считаю, что есть коммерческая лицензия, а также GPL.)

Прямо изо рта лошади: http://www.ffmpeg.org/legal.html

Особенно проверяйте контрольный список.

Для API 11+ вы можете использовать инфраструктуру stagefright для кодирования вашего видео в mp4, для этого вам не нужен ffmpeg.

OTOH, существует довольно много портов ffmpeg для Android, некоторые даже устанавливают отдельный сервис, единственная цель которого - обеспечить поддержку ffmpeg для любого приложения на устройстве. Используя такой подход, вы определенно не нарушаете никаких лицензий ПО.

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