Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another.

Overview

Video Transcoder

Build Status

Get it on F-Droid Get it on Google Play

Do you want to encode videos on your phone into different formats, trim videos, or extract audio? Are you looking for a free solution which will not take your information?

Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another. By selecting the video to process, details for the video are provided and the desired settings can be configured.

The following media containers are supported: Avi, Flv, Gif, Matroska, Mp3, Mp4, Ogg, Opus, WebM. Additionally, these are the supported video codecs: H.264, MPEG-1, MPEG-2, MPEG-4, VP8, VP9, Xvid.

The application requires very few permissions, and never attempts to access the Internet.

Screenshots

Building

To build, use the gradle wrapper scripts provided in the top level directory of the project. The following will compile the application and run all unit tests:

GNU/Linux, OSX, UNIX:

./gradlew build

Windows:

./gradlew.bat build

Note from Developer

The developer is currently on hiatus from the project. Questions and pull requests may not be looked at for some time. Apologies in advance.

Comments
  • Add intent for transcoding

    Add intent for transcoding

    Eg, like SendReduced does.

    Workflow:

    • gallery app
    • open video
    • share...to transcoder
    • process with last used ( #41 ) or some other profile ( #40 )
    • show share widget again
    • choose some app eg, chat app
    opened by licaon-kter 17
  • app does not encode some videos.

    app does not encode some videos.

    Expected behavior

    the user can encode any video from this app.

    Actual behavior

    the user can not encode any video from this app.

    How to reproduce

    • Download the application.
    • Starts.
    • Try to encode some MP4 video.
    • After this, The application throws an error and stops the encoding of the desired video.
    • Browser: video transcoder V 0.4
    • Operating system:android 5.1.1

    Recording Of The Bug

    https://youtu.be/W3c5ir_UrPI



    Posted on Utopian.io - Rewarding Open Source Contributors

    opened by shirou-jeff 12
  • Cannot load video from extern sd card on Android 7.1

    Cannot load video from extern sd card on Android 7.1

    Error message: Failed to resolve the location of media file It seems like it's nessesary to use the media framework API for loading from extern sd card. If ffmpeg needs direct access to the file and can't use the framework, maybe your app could automatically copy the video to intern storage for editing.

    opened by java-py-c-cpp-js 11
  • [Privacy] WebView

    [Privacy] WebView

    Opt out of sending metrics to Google when using WebView. Add the following to the manifest -

    <meta-data android:name="android.webkit.WebView.MetricsOptOut" android:value="true" />
    

    https://developer.android.com/guide/webapps/webview-privacy

    opened by duggalsu 7
  • [Q] which x264 preset is used?

    [Q] which x264 preset is used?

    Quick question, which x264 preset is currently being used? The default medium one?
    According to newest findings the "faster" preset seems to offer the best speed<->quality balance:
    https://streaminglearningcenter.com/blogs/saving-encoding-adjust-encoding-configuration-increase-capacity.html
    It is found to be 70% faster than the default with quality difference that should not be perceptible
    Maybe you could make sure it is the one this app uses?

    opened by utack 7
  • Add custom resolution and FPS option

    Add custom resolution and FPS option

    So I just saw that your app is using wrong 4K format, I thought it would be nice to report my opinions.

    First of all thank you for making such a good application.

    My current requests will be divided into issues so that you can easily close the ones you accomplish.

    You really must remove uncommon resolutions in encoding such as 800x600 and add their corresponding xxP end of the title.

    enhancement help wanted 
    opened by nulledone 6
  • No error,  just doesn't encode after starting.  I suspect it can't write to SDCard?

    No error, just doesn't encode after starting. I suspect it can't write to SDCard?

    So I was trying to encode a clip that's on my SDCard so I could convert it into a GIF in another app, but it would not give me an error message even after several minutes. I'm only guessing that it can't write to the card; only has read access. Is it possible to add an output directory so I could point the new file to internal storage in the next release?

    Samsung J7 with Android 7.0

    opened by RonerCodes 5
  • Make FilePicker scroll faster for big folders

    Make FilePicker scroll faster for big folders

    Hi,

    thanks for this nice project — and the best and only usable FOSS transcoder for android :+1: .

    On Android phones, people often don’t move pictures and videos around. Thus, the Camera/DCIM-folder (or whatever it’s called on your device), is often crowded, with thousands of pictures and (a little less) videos. Especially since videos come at the end of that list (VID_* > IMG_*), it’s arduous to scroll through ~8000 files to pick your most recent video.

    It’d be great if this could somehow be improved. I have looked over the source quickly, and found you use the excellent NoNonsense-FilePicker. There’s an issue over at their tracker, for exactly this behavior: https://github.com/spacecowboy/NoNonsense-FilePicker/issues/87 The suggested resolution to use https://github.com/timusus/RecyclerView-FastScroll looks quite nice IMO. If you scroll down in the FilePicker issue, you’ll find they even added this in their example code.

    It’d be great if the already very useful Video-Transcoder could be made even more accessible and convenient with this addition.

    Thanks and Best Regards -Dario

    opened by Nebukadneza 4
  • Using as audio transcoder: allow mp3 m4a ogg files as input

    Using as audio transcoder: allow mp3 m4a ogg files as input

    video-transcoder and ffmpeg can also transcode audio-only files.

    For video-transcoder i have to rename the audio file "someAudio.m4a" to "someAudio.m4a.avi" to allow converting to mp3.

    I would be nice if video-transcoder also accept audio file names mp3 m4a ogg

    opened by k3b 3
  • Request for acceptance of the Italian translation on Transifex

    Request for acceptance of the Italian translation on Transifex

    I have seen from a previous closed issue that not always the translation requests are forwarded. I already have the translated XML ready, but I'm too much of a lazy noob to do a pull request on GitHub. P.S. This string seems missing from other translated XMLs: <string name=""invalidMediaFile"">The Selected media file is invalid or not supported

    opened by 6og 2
  • Can't Join the Indonesian Translation Team

    Can't Join the Indonesian Translation Team

    Hello, after I make request about Indonesian translation on Transifex, I can't join the Indonesian translation team. This is the screenshot:

    screenshot from 2018-09-07 18-38-07

    is me make mistake?

    Note: I'm sorry if my English is bad

    opened by ditokp 2
  • [question/bug] Android 11 partial incompatibility

    [question/bug] Android 11 partial incompatibility

    Hello.

    Will this great and very useful appl go back into development ? Or at least, will someone have the skills and the goodwill to make fully compatible android 11 at least, what already exists?

    The first very annoying bug noticed is that it seems impossible to access the SD card. Is this the case or did I miss something?

    In the immediate future, any advice for a quality and non-intrusive android video converter, compatible with android 11, would be very useful to me.

    Thanks in advance. Best regards

    opened by gbdomubpkm 8
  • REQUEST: Add

    REQUEST: Add "copy" options for audio and video codecs

    Many times only the audio or video codecs need to be transcoded and not both. Or the file needs to be remuxed into a different container. It would be helpful if you could copy the existing audio, video, or both.

    opened by VA1DER 0
  • Improve GRADLE build Performance

    Improve GRADLE build Performance

    Process forking options. Gradle will run all tests in a single forked VM by default. This can be problematic if there are a lot of tests or some very memory-hungry ones. We can fork a new test VM after a certain number of tests have run by setting forkEvery.

    ===================== If there are any inappropriate modifications in this PR, please give me a reply and I will change them.

    opened by shisheng-1 3
Releases(v0.14)
  • v0.14(Apr 3, 2019)

    Changes:

    • Better identification of selected media formats and codecs (https://github.com/brarcher/video-transcoder/commit/419c9a7d72dbfc1fd5485a40206846610a819bd3)
    • Displays length of selected GIF files (https://github.com/brarcher/video-transcoder/commit/4610011bae137e4cb07d86f87eab8e4e9c78464a)
    • Supports receiving GIF files from other apps (https://github.com/brarcher/video-transcoder/commit/4def5adef401b0d1e643d2f291c7fd2cf875fd43)
    • No longer attempts to preview unsupported video files over and over (https://github.com/brarcher/video-transcoder/commit/f48aea75a1a854fd48fcc777813ace928aecda64)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.71 MB)
  • v0.13(Oct 27, 2018)

    Changes:

    • Add support for AVI format (https://github.com/brarcher/video-transcoder/pull/134)
    • Add support for WebM format (https://github.com/brarcher/video-transcoder/pull/139)
    • Add V8/V9 support for MKV format (https://github.com/brarcher/video-transcoder/pull/140)
    • Fix issue where encoding to GIF may fail to start (https://github.com/brarcher/video-transcoder/pull/137)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.71 MB)
  • v0.12.1(Aug 27, 2018)

    Changes:

    • Prevent crash if details on selected media file could not be read. (https://github.com/brarcher/video-transcoder/pull/126)
    • Fix issues related to custom resolution feature which resulted in preventing encoding to an audio-only container. (https://github.com/brarcher/video-transcoder/pull/129)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.70 MB)
  • v0.12(Aug 14, 2018)

    Changes:

    • Reduce Min SDK to 19, e.g. Android 4.4 (https://github.com/brarcher/video-transcoder/pull/122)
    • Add support for custom video resolutions (https://github.com/brarcher/video-transcoder/pull/111)
    • Remove hard-coded video resolutions, and only display the original resolution with 1/2 and 1/4 resolutions (https://github.com/brarcher/video-transcoder/pull/121)
    • Set the 'preset' setting for h264 to 'faster' (https://github.com/brarcher/video-transcoder/pull/120)
    • Update translations (https://github.com/brarcher/video-transcoder/pull/124)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.70 MB)
  • v0.11(Jun 27, 2018)

    Changes:

    • Add support for SEND intent. (https://github.com/brarcher/video-transcoder/pull/106)
      • Note: the media file being shared from another app is first copied then processed.
    • Add setting to configure media file search location. (https://github.com/brarcher/video-transcoder/pull/108)
    • Add support for custom resolutions. (https://github.com/brarcher/video-transcoder/pull/111)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.86 MB)
  • v0.10(Jun 14, 2018)

  • v0.9(May 20, 2018)

    Changes:

    • Fix crash when starting encoding on Android 8.1. (https://github.com/brarcher/video-transcoder/pull/81)
    • Fix default output file name and creating output directory if it does not exist. (https://github.com/brarcher/video-transcoder/pull/82)
    • Remember last used directory when searching for input files. (https://github.com/brarcher/video-transcoder/pull/83)
    • Use default FFmepg color palette for gif instead of generating a custom color palette. (https://github.com/brarcher/video-transcoder/pull/85)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.52 MB)
  • v0.8(May 18, 2018)

    Changes:

    • Change to using a fork of ffmpeg-android-java, to enable future custom FFmpeg support. (https://github.com/brarcher/video-transcoder/pull/73)
    • Switch to the NoNonsense-FilePicker library for file selection. (https://github.com/brarcher/video-transcoder/pull/76)
    • Fix bug with cutting the video. (https://github.com/brarcher/video-transcoder/pull/77)
    • Enable ACRA for reporting crashes via email. (https://github.com/brarcher/video-transcoder/pull/78)

    Note, this release supports the ENCODE intent, which allows other apps to request Video Transcoder to encode a video or audio file. Documentation available here. This is a beta feature. Apps are welcome to test out the ENCODE intent and provide feedback. Based on feedback the ENCODE intent may change before being finalized and may not be backwards compatible.

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.52 MB)
  • v0.7a(Apr 1, 2018)

    This is release v0.7a of Video Transcoder. It is an alpha release.

    Changes:

    • Add an intent interface for requesting the app to encode a file. The intention is to use the interface and allow other applications to request to encode files. (https://github.com/brarcher/video-transcoder/pull/70)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(38.57 MB)
  • v0.6(Mar 28, 2018)

    This is release v0.6 of Video Transcoder.

    Changes:

    • Use foreground service for managing FFmpeg to allow encoding of files longer than 10 minutes. (https://github.com/brarcher/video-transcoder/pull/62)
    • Cancel in-progress encodings if service is destroyed. This prevents encoding from continuing without a way to cancel it, and an application crash when the encoding completes. (https://github.com/brarcher/video-transcoder/pull/62)
    • Create destination directory if it does not exist. (https://github.com/brarcher/video-transcoder/pull/63)
    • Change the output filename to be based on the input file name. (https://github.com/brarcher/video-transcoder/pull/63)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.98 MB)
  • v0.5(Mar 16, 2018)

    This is release v0.5 of Video Transcoder.

    Changes:

    • Update FFmpeg to 3.4.1 and include FFprobe tool. (https://github.com/brarcher/video-transcoder/pull/45)
    • Fix issue where application could not encode on x86. (https://github.com/brarcher/video-transcoder/pull/45)
    • Display notification while encoding. (https://github.com/brarcher/video-transcoder/pull/46)
    • Allow selecting audio files as well, not only video files. (https://github.com/brarcher/video-transcoder/pull/48)
    • Remove filtering of media types in file picker as it was resulting in performance issues. (https://github.com/brarcher/video-transcoder/pull/52)
    • Allow application to rotate instead of forcing portrait. (https://github.com/brarcher/video-transcoder/pull/53)
    • Add support for opus audio. (https://github.com/brarcher/video-transcoder/pull/54)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(37.98 MB)
  • v0.4(Mar 3, 2018)

  • v0.3(Feb 18, 2018)

    This is release v0.3 of Video Transcoder.

    Changes:

    • License changed from GPLv2 -> GPLv3. (https://github.com/brarcher/video-transcoder/pull/25)
    • Workaround install crash on Android 5 and below. (https://github.com/brarcher/video-transcoder/pull/23)
    • Report FFmpeg errors to user. (https://github.com/brarcher/video-transcoder/pull/24)
    • Improve video selection sliders. (https://github.com/brarcher/video-transcoder/pull/24)

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(20.93 MB)
  • v0.2(Jan 21, 2018)

  • v0.1(Jan 14, 2018)

    This is release v0.1 of Video Transcoder. It provides:

    • Ability to select a video file to process.
    • Pre-populates video/audio settings with that of the selected video file.
    • Ability to change video/audio settings using several pre-selected options.
    • Ability to transcode the selected video to the same or different video format or audio format.
    • Ability to change the start and ending times of the resulting video or audio file.
    • Ability to cancel an in-progress file being encoded.

    Note that this project does not work on recent versions of Android running on x86.

    This project is a bit rough presently. It may work to transcode a file, but it is not yet helpful in guiding a user to a specific goal. For example, if a user wanted to encode a video to be smaller, no guidance is given on how to accomplish that.

    Downloads

    Source code(tar.gz)
    Source code(zip)
    video-transcoder.apk(20.84 MB)
Owner
Branden Archer
Branden Archer
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 29.8k Dec 22, 2021
Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer.

Yet Another Video Player Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer. Who Is YAVP For? First o

null 62 Dec 29, 2022
Blade is an open source music player for Android, allowing you to play music from multiple services : files on your phone, Spotify, and more.

Blade Player Blade is an open source music player for Android, allowing you to play music from multiple services : files on your phone, Spotify, and m

Valentin HAUDIQUET 72 Jan 5, 2023
[] FFmpeg build for android random architectures with example jni

AndroidFFmpegLibrary This project aims to create working library providing playing video files in android via ffmpeg libraries. With some effort and N

AppUnite Sp. z o.o. Spk. 1.1k Dec 27, 2022
NOVA is an open source video player for Android

NOVA: opeN sOurce Video plAyer Overview NOVA is an open source video player for Android. It consists in a fork of the original Archos Video Player Com

NOVA 876 Jan 2, 2023
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀

Android p2p cdn sdk to distribute load and reduce costs(https://peervadoo.com) Vadootv is a p2p sdk integration to reduce your video streaming costs b

Vadootv 40 Oct 5, 2022
Compose-video-player - Video player for Android Compose powered by ExoPlayer

Compose Video Player Video player for Android Compose powered by ExoPlayer. Addi

Juan Pablo Herrera 22 Dec 13, 2022
The Madman library (Media Ads Manager) enables you to advertise video contents with video ads.

Madman (Media ads manager) is a high performance alternative to Google's standard IMA android SDK. If you have your own VAST server and want to render video ads and have full control over the UI, then this library is for you.

Flipkart Incubator 65 Nov 10, 2022
VideoView that plays video only when :eyes: are open and :boy: is detected with various other features

LookAtMe VideoView that plays video only when ?? are open and ?? is detected with various other features GIF AndroidPub (Medium) Post You can read the

Pradyuman Dixit 186 Dec 13, 2022
Another local music player for Android built with Compose. Way too "local" so you likely won't need it.

AnotherAndroidLocalMusicPlayer Another local music player for Android built with Compose and media3 (ExoPlayer). Warning The app behaves strangly as i

oO0oO0oO0o0o00 0 Mar 13, 2022
Shuttle is an open source, local music player for Android.

Shuttle Music Player Shuttle is an open source, local music player for Android. Shuttle comes in two flavours: Shuttle (free) Shuttle+ The free versio

Tim Malseed 2.2k Jan 4, 2023
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022
This repository contains all the development I did to the Jitsi Video calling application.

This repository contains all the development I did to the Jitsi Video calling application. The jitsi-Media-Transform-mod directory contains the develo

null 1 Mar 22, 2022
A Java API to read, write and create MP4 files

Build status: Current central released version 1.x branch: Current central released version 2.x branch: Java MP4 Parser A Java API to read, write and

Sebastian Annies 2.6k Dec 30, 2022
Android app that uses Spotify API to recommend new music based on your listening history

Android app that uses Spotify API to recommend new music based on your listening history. Written in Kotlin and uses Spotify Web API and Android SDK. New music is presented in swipe cards where a left swipe plays the next song and a right swipe can add the app to your liked songs in Spotify.

null 3 Jun 5, 2022
Open-sourced voice labeling application

vLabeler vLabeler is an open-sourced voice labeling application, aiming: Modern and fluent UI/UX Customizable labeling/import/export, to be used by di

null 42 Dec 23, 2022
pokestack is an all-in-one solution for mobile voice interfaces on Android.

Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack 57 Nov 20, 2022