Abstract:
The objective of our application is to make video manipulation, cinematic collaboration and sharing easy and fun. The project is divided among three groups which develop different modules of the app. Our module includes video processing and video playback. The video processing involves the application of multiple effects on the video and rendering the output video. Our module also consists of interaction and working on the video playback so that the user can view the changes he has made to the video.
Android OS does not provide any low-level video codec functions in default SDK. Therefore, we have used ported versions of FFmpeg for frame grabbing/recording and OpenCV for color space conversion. Their binaries are bundled with the app, therefore, no separate setup is required on the target device. Being ported versions, they are not optimized for Android OS. Therefore, to optimize the video processing module, we have devised an algorithm by which multiple frames are processed in parallel. We have used Java Thread Pool Executor to implement multithreading. The multithreading has improved performance by almost 50 %.