How to Configuration FFmpeg support to Android Application ?

Hello Friends,

Today we Check About FFMPEG library integration,

1.Extract the project achieve, and import module the ffmpeg4android_lib (ffmpeg4android_lib is under the ffmpeg4android_demo_studio folder) to your project.

* In-case you don’t see the module in you project, add it manually to your project setting gradle:

include 'ffmpeg4android_lib'

and click the sync button.

2.Add the needed Permissions:

         <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
         <uses-permission android:name="android.permission.WAKE_LOCK" />
         to your project Manifest file.

You need to add runtime permissions:
  Call the method: GeneralUtils.checkForPermissionsMAndAbove(Main.this, false);
  On your main activity onCreate method, or add the above 2 permissions to your existing runtime permission method.

3.  Add to your App Module build.gradle this:

defaultConfig {
  applicationId "com.examples.ffmpeg4android_demo"
  minSdkVersion 19
  targetSdkVersion 27
  ndk {
      abiFilter "armeabi-v7a"

For Android Studio 3.x:

dependencies {
  implementation project(':ffmpeg4android_lib')

In case the ffmpeg4andoid_lib is not under your project folder,
Add this to your setting.gradle (set the correct path):
include 'ffmpeg4android_lib'
project(':ffmpeg4android_lib').projectDir = new File('sdcard/ffm/ffmpeg4android_lib')

For Android Studio 2.x:
dependencies {
  compile project(':ffmpeg4android_lib')

4. To your add this:


5. To call ffmpeg4android add to your code (activity, service , fragment or any over java object) :

                       GeneralUtils.checkForPermissionsMAndAbove(Main.this, true);
LoadJNI vk = new LoadJNI();
       try {
            String workFolder = getApplicationContext().getFilesDir().getAbsolutePath();
            String[] complexCommand = {"ffmpeg","-i", "/sdcard/videokit/in.mp4"};
   , workFolder , getApplicationContext());
            Log.i("test", "ffmpeg4android finished successfully");
        } catch (Throwable e) {
            Log.e("test", "vk run exception.", e);

  Make sure /sdcard/videokit/in.mp4 exists on your device sdcard, and you gave permissions to access it (step 2),
  Then run the app to your device.
  You should see ffmpeg4android finished successfully in your log (test tag).

Android Code :

Facebook's Coming Messaging App - 3 Potential Benefits of Merger

Facebook is planning to integrate the messaging services of WhatsApp, Instagram and Facebook Messenger.

Basic communication infrastructure will be synchronized when all three applications begin to function as separate applications. For example, a WhatsApp user can send a message to the Instagram user, which is not currently possible.

The integration is projected to be completed by the end of 2019 or early 2020, according to The New York Times, which interviewed various people familiar with the project.

Why is Facebook Making this Move?

The integration of Messenger, Instagram and WhatsApp is reported to have caused a lot of internal strife.
Facebook hasn’t yet provided specific reasons as to why they're looking to make this change, but you'd assume there'd have to be a significant reason as to why they would reverse their previous position of allowing Instagram and WhatsApp to operate as largely independent entities.
Here’s my two cents on the change, and what it could mean for Facebook - and digital marketers - moving forward.

Messenger Integration Reasons 

Reason #1: Chatbots

Que : Any person would ever want to message someone on WhatsApp using Instagram?
Ans : Businesses.
With this update, businesses can also send messages to their customers using which message targets are available - this change is great for Facebook Messenger chatbot to a significantly larger and more geographically, and demographically, diverse population. Various peoples that allow businesses to interact with their customers and connect with their customers.

Reason #2: Alternative to Email

Email marketing is a +$100 Billion dollar industry - yet email marketing itself is actually, mostly tremendous.
Any company or individual can simply guess your email, or buy it from an email list vendor, then send you unsolicited emails. And you can't expect those companies to honor your unsubscribes either, despite government regulations.
Merging messaging functionality across these three enormously popular applications would create a messaging system that could potentially rival the ubiquity of email. Businesses could reach most internet users, while users could look forward to the elimination of spam, since Facebook requires that users opt-in to receiving messages from businesses.

Reason #3: WeChat

In China, there is no - news feed, there's only WeChat, which is used like an alternative to a web browser - not just for messaging, but also to buy clothing, call a ride-sharing service, order lunch, etc.
There is no such service in Western markets because some people have user fragmentation on dialogue platforms - but if you can integrate the Facebook conversation, more businesses offer business services on the platform.
This could be enormously valuable to Facebook - Tencent, the parent company of WeChat, is currently estimated to be worth around $400 billion. Facebook, for comparison, is valued at around $500 billion.

Android Stdio 3.3 - Project Marble

We are happy to start the new year with a stable version of the updated and upgraded Android studio 3.3. You can download it today from Many of you have relied on our beliefs to our great conclusions. The purpose is to present Android Studio products for Android applications.

Since the last robust version, Android Studio 3.3 has responded to over 200 bugs reported by users. This release also includes improved incremental Java rendering, as well as official support for the navigation editor, annotation processors, C ++ controllers, a new project wizard, and customised edits for any performance improvement.

Android Studio 3.3 starts the broader quality focus area for the year, As a Project Marble.

At the heart of the Android project announced at the Android Developer Summit in November 2018, the Android Studio team focuses on the core features and flow of Solid Solid State Integrated Development Environments (IDEs), and has an advanced and explainable user who is critical to the development of the application in your daily workflow. The Marble project focuses specifically on reducing the number of crashes, hangings, memory capacity, and errors affecting users. We also invest in measuring our infrastructure to avoid these problems. Continue with more innovations and details when we move on to this initiative.

  • Navigation Editor
  • IntelliJ 2018.2.2 Platform Update
  • Kotlin 1.3.11 Update
  • Clang-Tidy Support for C++
  • New Project Wizard update
  • Delete Unused IDE Directories
  • IDE User Feedback

  • Navigation Editor - The navigation design is a view to build XML feeds that support the new Jetpack Navigator Component. You can create interactive conversations in the Publisher and Design component of your application in screenshots and content regions. This editor is already planned for Android Studio, but we keep this feature in order to improve the quality of our comments based on quality. Thank you for the collaborators.
Navigation Editor
  • IntelliJ Platform Update - Android Studio 3.3 includes Intellij 2018.2.2. This is a significant platform release from Jetbrains, with new previews for the code editor, updated icons, MacBook Touch Bar support, plus enhanced version control integrations. 
  • Kotlin Update - This version of Android Studio packages supports Kotlin 1.3.11, with support for Kotlin links and contracts, as well as IDE support for the Kotlin codelist method.

  • Clang-Tidy Support for C++ - Android Studio now has support for Clang-Tidy for C++ static code analysis. Similar to the current lint support for Java and Kotlin in Android Studio, Clang-Tidy helps those who have C++ in their Android app identify common coding errors and bugs. Enable the inspection by going to Settings → Editor → Inspections (Preference → Editor → Inspections for MacOS.
Clang-Tidy Code Inspection Settings
  • New Project Wizard update - In order to support a range of device types, programming languages, and a new framework, we have updated the wizard for a new project in Android Studio. You can get access to the same project proposals to simplify the user experience.
New Project Wizard
  • Delete Unused IDE Directories - We've added a new feature to help improve the latest version of Android Studio, unleash settings and cache directories. Earlier versions of Android studio have struggled to find and remove these old records and access them on your hard drive.When you first run Android Studio 3.3 and higher, the new dialog suggests directories that you can safely remove from past installations of Android Studio.
Delete Unused Directories Dialogue
  • IDE User Feedback - To help us to create a better product, we have started to include in-product sentiment buttons for quick feedback. For those who opt-in to sharing usage data, feel free to click on the icon that suits your sentiment while using Android Studio. To opt-in to give in-product feedback go to Settings → Appearance & Behavior → System Settings → Data Sharing ( Preferences → Appearance & Behavior → System Settings → Data Sharing for MacOS).
IDE User Feedback

Android Library : Top Coolest Library for Android native

Android Library : Best Android-Native Library to Use & Make Efficient Application 


This is a beautiful local images and videos selector. Main functionalities:
  • Selecting images including JPEG, PNG, GIF and videos including MPEG, MP4,
  • applying custom themes, including two built-in ones,
  • different image loaders,
  • defining custom filter rules,
  • fully operational within Activities and Fragments.
You can find more in the lib’s wiki.

Spruce Android Animation Library

Spruce is a lightweight animation library that helps choreograph the animations on the screen. With so many different animation libraries out there, developers need to make sure that each view is animating at the appropriate time. Spruce can help designers request complex multi-view animations and not have the developers cringe at the prototype.


Chips were presented in Material Design. They
represent complex entities in small blocks, such as a contact. A chip may contain entities such as a photo, text, rules, an icon, or a contact.
MaterialChipsInput is an implementation of that component for Android. The library provides two views : ChipsInput and ChipView.


This library helps you to add more meaningful shadow to your images. According to README, it is
More exquisite shadow effect, used in some special scene to enhance the user experience.
Also, it is easy to use.


This library allows to create multiple animations based on points. Take a look — how smooth and beautiful animations you can make quite easily. READMEcontains a lot of examples so you might check it here.


Litho is not a library, it is a framework. A really powerful framework to build UI in a declarative way. It was developed by Facebook devs, so even if you do not want to try it, still it is worthy to observe and follow a development process.

Main features include:
  • using a declarative API to define UI components. You simply describe the layout for your UI based on a set of immutable inputs and the framework takes care of the rest.
  • Asynchronous layout: Litho can measure and layout your UI ahead of time without blocking the UI thread.
  • View flattening: Litho uses Yoga for layout and automatically reduces the number of ViewGroups that your UI contains.
  • Fine-grained recycling: Any component such as a text or image can be recycled and reused anywhere in the UI.

Adaptable Bottom Navigation

Some time ago Google updated Material Design guideline, and introduced bottom navigation bars, as one of several good UI patters to follow in our apps. They also added the implementation to the Design Support Library.

Adaptable Bottom Navigation can easily replace BottomNavigationView from Support Library. It is implemented in the way how ViewPager and TabLayoutwork. This is a short explanation from Buffer team:
As mentioned, when using the Bottom Navigation View from the Android Support Library, there can be a lot of boilerplate code for the switching of views. Because of this, we took inspiration from the TabLayout setupWithViewPager() method and created a custom ViewSwapper component that can be attached to a Bottom Navigation View to simplify the management of view display.
You can read more on Github. There is a quite comprehensive documentation and explanation why it was implemented (tip: clean architecture 🚀 ).


This library allows you to implement pattern locking mechanism in your app easily and quickly. It is very easy to use and there are plenty of customization options available to change the functionality and look-and-feel of this view to match your needs.
It also supports RxJava 2 view bindings, so if you are a fan of reactive programming (just like me), you can get a stream of updates as the user draws the pattern.
The README is full of examples, so it is easy to start with the library.


This is a library which helps to draw isometric shapes. In my opinion, it is one of the coolest libraries in that list, as it reminds me of Monument Valleygame.
The library supports drawing multiple shapes, paths and complex structures, like the example below.


We can treat this library as a ViewPager extension that encapsulates many features, mainly to provide a unified solution for multi-page switching scenarios.

UltraViewPager supports:

  • horizontal scrolling and vertical scrolling,
  • multi views in one ViewPager
  • switching views circularly. For example, if there are 3 views to display in a ViewPager, it should switch back to the first view after the third view,
  • auto-scrolling feature (implemented timer using Handler),
  • setting max-height and max-width,
  • setting the aspect ratio,
  • indicating the view we are currently (circle and icon),
  • built-in two kinds of page transition animations.
This library has a good documentation as well.



This is a library which we can consider as a DrawerLayout-like ViewGroup, where a drawer is hidden under the content view, and then can be shifted to make the drawer visible. REAMDE is quite comprehensive and it is worthy to check for sure.


It is just a view where you can type your password. But fancy one!


This library allows to represent sound as a gradient colored visualisation.


This is a highly configurable widget for image cropping. The library has a modular architecture, which makes it highly configurable. For the info on how to configure CropIwaViewrefer to the wiki on Github.


This is a second framework on that list. It is responsible for image compression and it is quite powerful. Also, it
uses asynchronous thread pool to compress image, and will hand out the result in the main thread when compression is completed.

Effects of compression

Tiny - an image compression


This library provides a custom TextView widget, which can create text from particles using a variety of animation effects and configuration properties.


This a fresh library and still in beta, but it does a really cool thing — it changes your theme dynamically with Rx support! According to the author, this is
A fast and easy to use plug-and-play dynamic theme engine. Powered by Rx, for Android apps.
The documentation is really good, comprehensive and definitely worthy to check out.

 # EasyCalendar

This is an easy custom calendar widget. Main features include:
  • Custom layout for title,
  • custom layout for date,
  • show or hide divider for date,
  • show or hide overflow date,
  • listen to date’s view be clicked.
The documentation is comprehensive and the library is easy to use.


This library provides two rating bars:
  • BaseRatingBar — without any animation,
  • ScaleRatingBar — with a progressive and scale animation.
You can see them in a gif below:


This library is advertised as the simplest navigation library for Android, but you need to check if it is worthy for you to use it.
Main features:
  • Navigation is as simple as calling goTo(screen) method,
  • you get full control of the backstack,
  • transitions are automatically handled for you.
It has comprehensive wiki with all explanations needed.


This is quite cool library. It adds a shadows to your images, but the color of shadow is in a dominant image color.

Documentation is quite poor but I think the code is self-explanatory.


This is a refresh animation that opens a camera shutter. In my opinion it is really worthy to check, especially in README there is a mathematical analysis, how to achieve this effect!

Popular Posts

Featured post

20 Tools for Startups Who Can’t Afford Design Teams

In the beginning, there was you, and your laptop. As entrepreneurs, we’ve all been there: nurturing a larger-than-life vision of what our a...

Contact Form


Email *

Message *