Библиотеки обработки и фильтрации видео
Я пытаюсь решить, какую библиотеку выбрать, чтобы создать приложение, которое может фильтровать видео, например, для украшения или ясности.
Во время поиска я наткнулся на 2 кандидата: OpenCv и FFmpeg, и я нашел полную структуру только для FFmpeg(так что +1 за это).
Я не смог найти полное сравнение между ними, поэтому, если кто-то попробует их и сможет опубликовать ответ, это будет очень полезно.
Редактировать:
Другой кандидат - Marvin Framework(Java-проект) для Android - https://code.google.com/p/android-image-filtering/
2 ответа
OpenCV - это фреймворк для Computer Vision, и он очень ограничен в том, что вам нужно, потому что он требует от вас написания большинства крутых фильтров самостоятельно. Тем не менее, он предоставляет несколько методов для размытия изображений, изменения контрастности, преобразования в оттенки серого, переворачивания, обрезки, порогового значения, размытия, расширения, изменения размера, поворота, выделения цветов, составного изображения и некоторых других вещей. Чтобы у вас было представление о том, как реализовать фильтры, я недавно реализовал фильтр карт смещения с использованием OpenCV.
FFmpeg также имеет несколько фильтров, но это кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео, что означает, что он не предлагает много эффектов фильтра.
Тем не менее, оба API-интерфейса могут читать видео (файлы и поток с камеры) на Android и предоставлять доступ к видеокадрам, чтобы вы могли выполнять свои собственные фильтры.
Я считаю, что технология, которая действительно может помочь вам принести большую коллекцию фильтров в ваше приложение, - это ImageMagick. Обратите внимание, что ImageMagick не обрабатывает видео, поэтому для этой части вы можете использовать собственный API Android, OpenCV или FFmpeg. Вот несколько примеров того, что вы можете сделать с изображением, используя ImageMagick из командной строки, интерфейса программы или скрипта:
Есть очень полезная библиотека OpenGL ES 2.0 для обработки видео с множеством фильтров для ios
обертка для Android здесь: GPUImage Wrapper для Android
Инфраструктура GPUImage представляет собой лицензированную BSD библиотеку iOS, которая позволяет применять ускоренные с помощью графического процессора фильтры и другие эффекты к изображениям, видео с камер в реальном времени и фильмам. По сравнению с Core Image (часть iOS 5.0), GPUImage позволяет вам писать свои собственные фильтры, поддерживает развертывание на iOS 4.0 и имеет более простой интерфейс. Однако в настоящее время в нем отсутствуют некоторые более продвинутые функции Core Image, такие как распознавание лиц.