{"id":13905454,"url":"https://github.com/bravobit/FFmpeg-Android","last_synced_at":"2025-07-18T02:33:35.423Z","repository":{"id":44877550,"uuid":"113855009","full_name":"bravobit/FFmpeg-Android","owner":"bravobit","description":"FFMpeg/FFprobe compiled for Android","archived":false,"fork":false,"pushed_at":"2021-02-15T09:28:32.000Z","size":73250,"stargazers_count":753,"open_issues_count":87,"forks_count":178,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-05-24T09:07:23.633Z","etag":null,"topics":["android-library","armv7","ffmpeg","ffmpeg-android","ffprobe","x86"],"latest_commit_sha":null,"homepage":"https://bravobit.nl/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bravobit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-11T12:15:34.000Z","updated_at":"2025-05-23T02:28:41.000Z","dependencies_parsed_at":"2022-09-06T03:11:44.329Z","dependency_job_id":null,"html_url":"https://github.com/bravobit/FFmpeg-Android","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bravobit/FFmpeg-Android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bravobit%2FFFmpeg-Android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bravobit%2FFFmpeg-Android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bravobit%2FFFmpeg-Android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bravobit%2FFFmpeg-Android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bravobit","download_url":"https://codeload.github.com/bravobit/FFmpeg-Android/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bravobit%2FFFmpeg-Android/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265692384,"owners_count":23812198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android-library","armv7","ffmpeg","ffmpeg-android","ffprobe","x86"],"created_at":"2024-08-06T23:01:15.995Z","updated_at":"2025-07-18T02:33:30.406Z","avatar_url":"https://github.com/bravobit.png","language":"Java","readme":"# FFmpeg-Android\n[ ![Download](https://api.bintray.com/packages/bravobit/Android-FFmpeg/android-ffmpeg/images/download.svg) ](https://bintray.com/bravobit/Android-FFmpeg/android-ffmpeg/_latestVersion)\n[ ![Buy us a beer](https://pay.bravobit.nl/assets/bravopay.svg) ](https://pay.bravobit.nl/?description=some%20beers)\n\nFFMpeg/FFprobe compiled for Android.\nExecute FFmpeg \u0026 FFprobe commands with ease in your Android project.\n\n## About\nThis project is a continued fork of [FFmpeg Android Java](https://github.com/WritingMinds/ffmpeg-android-java) by WritingMinds.\nThis fork fixes the `CANNOT LINK EXECUTABLE ffmpeg: has text relocations` issue on x86 devices along with some other bugfixes, new features and the newest FFmpeg builds.\n\n### Architectures\nBravobit FFmpeg-Android runs on the following architectures:\n- armv7\n- armv7-neon\n- armv8\n- x86\n- x86_64\n\n### FFmpeg build\nFFmpeg in this project was built with the following libraries:\n- x264 `r2851 ba24899`\n- libpng `1.6.21`\n- freetype2 `2.8.1`\n- libmp3lame `3.100`\n- libvorbis `1.3.5`\n- libvpx `v1.6.1-1456-g7d1bf5d`\n- libopus `1.2.1`\n- fontconfig `2.11.94`\n- libass `0.14.0`\n- fribidi `0.19.7`\n- expat `2.1.0`\n- fdk-aac `0.1.6`\n\n### Features\n- Uses the latest FFmpeg release `n4.0-39-gda39990`\n- Uses native CPU capabilities on ARM architectures\n- FFprobe is bundled in this library too\n- Enabled network capabilities\n- Multithreading\n\n## Usage\n\n### Getting Started\nInclude the dependency\n```gradle\ndependencies {\n    implementation 'nl.bravobit:android-ffmpeg:1.1.7'\n}\n```\n\n### Check if FFmpeg is supported\nTo check whether FFmpeg is available on your device you can use the following method.\n```java\nif (FFmpeg.getInstance(this).isSupported()) {\n  // ffmpeg is supported\n} else {\n  // ffmpeg is not supported\n}\n```\nThis is all you have to do to load the FFmpeg library.\n\n### Run FFmpeg command\nIn this sample code we will run the ffmpeg -version command.\n```java\nFFmpeg ffmpeg = FFmpeg.getInstance(context);\n  // to execute \"ffmpeg -version\" command you just need to pass \"-version\"\nffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {\n\n    @Override\n    public void onStart() {}\n\n    @Override\n    public void onProgress(String message) {}\n\n    @Override\n    public void onFailure(String message) {}\n\n    @Override\n    public void onSuccess(String message) {}\n\n    @Override\n    public void onFinish() {}\n\n});\n```\n\n### Stop (or Quit) the FFmpeg process\nIf you want to stop the running FFmpeg process, simply call `.sendQuitSignal()` on the `FFtask` that is running:\n\n```java\nFFmpeg ffmpeg = FFmpeg.getInstance(context);\nFFtask ffTask = ffmpeg.execute( ... )\n\nffTask.sendQuitSignal();\n```\n\n_NOTE: This will result in `onFailure` being called instead of `onSuccess`._\n\n### Check if FFprobe is supported\nTo check whether FFprobe is available on your device you can use the following method.\n```java\nif (FFprobe.getInstance(this).isSupported()) {\n  // ffprobe is supported\n} else {\n  // ffprobe is not supported\n}\n```\nThis is all you have to do to load the FFprobe library.\n\n### Run FFprobe command\nIn this sample code we will run the ffprobe -version command.\n```java\nFFprobe ffprobe = FFprobe.getInstance(context);\n// to execute \"ffprobe -version\" command you just need to pass \"-version\"\nffprobe.execute(cmd, new ExecuteBinaryResponseHandler() {\n\n    @Override\n    public void onStart() {}\n\n    @Override\n    public void onProgress(String message) {}\n\n    @Override\n    public void onFailure(String message) {}\n\n    @Override\n    public void onSuccess(String message) {}\n\n    @Override\n    public void onFinish() {}\n\n});\n```\n\n## Special Thanks To\n- [hiteshsondhi88](https://github.com/hiteshsondhi88)\n- [diegoperini](https://github.com/diegoperini)\n\n## Licensing\n- [Library license](https://github.com/bravobit/FFmpeg-Android/blob/master/LICENSE)\n- [FFmpeg license](https://www.ffmpeg.org/legal.html)\n","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbravobit%2FFFmpeg-Android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbravobit%2FFFmpeg-Android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbravobit%2FFFmpeg-Android/lists"}