android-ffmpeg-with-rtmp alternatives and similar packages
Based on the "Media" category.
Alternatively, view android-ffmpeg-with-rtmp alternatives based on common mentions on social networks and blogs.
-
PhotoFiltersSDK
AndroidPhotoFilters aims to provide fast, powerful and flexible image processing instrument for creating awesome effects on any image media.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of android-ffmpeg-with-rtmp or a related project?
README
android-ffmpeg-with-rtmp
This repository contains script(s) to build ffmpeg for android with RTMP (and OpenSSL) support.
Instructions
- Install the Android NDK (tested with version r10).
- Ensure that cURL is installed.
- Ensure that pkg-config is installed.
- Clone this repository and
cd
into its directory. - Run
build.sh
. - Look in
build/dist
for the resulting libraries and executables. - Look in
build/build.log
if something goes wrong.
For example:
$ git clone [email protected]:cine-io/android-ffmpeg-with-rtmp.git
$ cd android-ffmpeg-with-rtmp
$ ./build.sh
Notes
The first time you run the script, it will try to find the location where
you've installed the NDK. It will also try to auto-detect your operating
system and architecture. This process might take a minute or two, so the
information will be saved into a configuration file called
.build-config.sh
which will be used on subsequent executions of
the script.
The script is meant to be idempotent. However, should you want to start over from scratch, it's a simple matter of:
$ rm -rf src build .build-config.sh
$ ./build.sh
Android
To use ffmpeg
with an Android app you will need to deploy the binaries along
with the libraries. Here's a listing of the build/dist
directory.
.
├── bin
│ ├── ffmpeg
│ ├── openssl
│ └── ssltest
└── lib
├── libavcodec-56.so
├── libavdevice-56.so
├── libavfilter-5.so
├── libavformat-56.so
├── libavutil-54.so
├── libcrypto.so
├── librtmp-1.so
├── libssl.so
├── libswresample-1.so
└── libswscale-3.so
A simple way to deploy the binaries would be to archive (e.g. zip) these directories and copy the archive in a res/raw directory within the Android project. Then at runtime, unpack the archive into a directory accessible to the app and set the appropriate permissions, e.g. chmod 750 -R directory-name.
In order for the Android app to use the libraries the LD_LIBRARY_PATH must be set to the location where the libraries reside. For example:
// Change the permissions
Runtime.getRuntime().exec("chmod -R 0750 "+ abspath).waitFor();
//...
ProcessBuilder processBuilder = new ProcessBuilder(cmd);
final Map<String, String> environment = processBuilder.environment();
environment.put("LD_LIBRARY_PATH", context.getDir("lib", 0).getAbsolutePath());
Process process = processBuilder.start();
//...
Acknowledgements
Inspired by: openssl-android and FFmpeg-Android.
<!-- external links -->