Here is a script that downloads the source code of [FFmpeg](https://www.ffmpeg.org) library and assembles it for Android. The script produces shared libraries as well as header files. The output structure looks like this:
Here is a script that downloads the source code of [FFmpeg](https://www.ffmpeg.org) library and assembles it for Android. The script produces shared libraries as well as header files. The output structure looks like this:
The actual content of all this directories depends on how the FFmpeg was configured before assembling. For my purpose I enabled only *libavcodec*, *libavformat* and *libavutil*, but you can set your own configuration to make the FFmpeg you need.
The actual content of all this directories depends on how the FFmpeg was configured before assembling. For my purpose I enabled only *libavcodec*, *libavformat*, *libavutil* and *libswscale*, but you can set your own configuration to make the FFmpeg you need.
The version of FFmpeg here is **4.1.3**. And the script expects to use Android NDK **r19** (*b* and *c* also work as well as *r20-beta1*). Starting with FFmpeg 4.1 and NDK r19 the whole process became much simpler.
The version of FFmpeg here is **4.1.3**. And the script expects to use Android NDK **r19** (*b* and *c* also work as well as *r20-beta1* and *r20-beta2*). Starting with FFmpeg 4.1 and NDK r19 the whole process became much simpler.
## Supported architectures
## Supported architectures
@ -21,7 +21,3 @@ You have to define an environment variable `ANDROID_NDK_HOME` and set the correc
Well, just execute the script :) Examine the `output` directory after.
Well, just execute the script :) Examine the `output` directory after.
And the actual Android app can be found [here](https://github.com/Javernaut/WhatTheCodec)
And the actual Android app can be found [here](https://github.com/Javernaut/WhatTheCodec)
## Known issues:
The x86 binary doesn't have assembler optimizations, since they bring text relocations. So it may encounter certain performance issues. The x86_64 doesn't have this problem though.