Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Video processing and filtering libraries

I'm trying to decide which library to choose in order to create app that can filters a video, for example beautify or clarity.

During my search I came across 2 candidates: OpenCv and FFmpeg, and I found a complete framework only for FFmpeg(so +1 for this).

I couldn't found a complete comparision between the two so if someone has tried them and can post the answer it would be really helpful.

Edit:

Another candidate is Marvin framework(Java project) for Android - https://code.google.com/p/android-image-filtering/

like image 823
Nativ Avatar asked Oct 27 '13 14:10

Nativ


2 Answers

OpenCV is a framework for Computer Vision and it's very limited for what you need because it requires you to write most of the cool filters yourself. Nevertheless, it provides a few techniques to blur images, change contrast, convert to grayscale, flip, crop, threshold, erode, dilate, resize, rotate, isolate colors, composite, and few other things. Just so you have an idea of how to implement filters, I recently implemented a Displacement Map Filter using OpenCV.

FFmpeg has a few filters as well, but it's meant to be a cross-platform solution to record, convert and stream audio and video, which means it doesn't really offer many filter effects.

Nevertheless, both APIs can read video (files and stream from camera) on Android and provide access to the video frames so you can execute your custom filters.

I believe the technology that can really help you bring a large collection of filters to your application is ImageMagick. Note that ImageMagick doesn't handle videos, so you can use Android's native API, OpenCV or FFmpeg for this part. Here are a few examples of what you can do with an image using ImageMagick from the command line, a program interface, or script:

like image 94
karlphillip Avatar answered Oct 07 '22 05:10

karlphillip


there is a very useful OpenGL ES 2.0 library for video processing with many filters for ios

GPUImage for Ios

the android wrapper is here : GPUImage Wrapper for Android

The GPUImage framework is a BSD-licensed iOS library that lets you apply GPU-accelerated filters and other effects to images, live camera video, and movies. In comparison to Core Image (part of iOS 5.0), GPUImage allows you to write your own custom filters, supports deployment to iOS 4.0, and has a simpler interface. However, it currently lacks some of the more advanced features of Core Image, such as facial detection.

like image 41
Bilel Mnasser Avatar answered Oct 07 '22 05:10

Bilel Mnasser