Coder Social home page Coder Social logo

brarcher / video-transcoder Goto Github PK

View Code? Open in Web Editor NEW
479.0 20.0 57.0 43.47 MB

Android app for video and audio transcoder, based on FFmpeg

License: GNU General Public License v3.0

Java 94.26% Python 5.48% AIDL 0.25%
android ffmpeg audio-encoder video-encoder transcoding

video-transcoder's Introduction

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

This app is currently looking for a volunteer to take over development. If you are interested, please reach out.

video-transcoder's People

Contributors

bhuvnesh123 avatar brarcher avatar licaon-kter avatar poussinou avatar tacothedank avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

video-transcoder's Issues

Suggestion: Create "Movies" directory when it doesn't exist

Hey,

Just installed this app and it's working very well. Clean UI, no ads, free, easy enough to use. Good job!

I noticed that the app returns this error when the "Movies" directory doesn't exist (screenshot):

Encoding failed: /storage/emulated/0/Movies/Video_Transcoder_Output.mp4: No such file or directory

I was able to start the encoding process after manually creating the Movies folder, but maybe the app could do this instead of returning an error?

Also, and since we can't choose a new name for encoded file, perhaps file names should have a different name. For example, "original-file-name-video-resolution.mp4" instead of "Video_Transcoder_Output.mp4".

Support setting FPS to "same as source"

Thanks for the nice application, however I prefer to keep the transcoded video at the same FPS count as the original one. Would it be possible to implement such an option?

proposal logo for Video Transcoder app

Hi admin, I want to offer a new logo design is more sweet and simple application for Video Transcoder, If you like and can accept it.

You can simply reply to this proposal, I will gladly send you a new logo this file and I was able to provide some variation for this app, thank you!
dadadadda

Account for rotation metadata in videos

Some media formats, such as mp4, contain rotation metadata. At least one user has found that encoding a portrait video (assumed to have rotation metadata) when encoded with the app results in an output that is not correct (assumed the length/width are mixed up).

Make FilePicker scroll faster for big folders

Hi,

thanks for this nice project — and the best and only usable FOSS transcoder for android 👍 .

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

Inclusion of video to gif, add external mp3, merge videos and mute mp3

Components

Video transcoder is an app used in encoding video, extracting video mp3, and trimming videos. The features i will be making suggestions on are to be implemented in the editing section of the application, after selecting the video to be edited.

Proposal Description

I suggest that the video editing section of video transcoder should be made easier for users to understand, and include additional features such as video to gif, add external mp3, merge videos, mute mp3, fast motion, slow motion, and reverse.

Mockups / Examples

Here is a gif video of how the features should be implemented on the application.

https://cdn.steemitimages.com/DQmVth2cPqEhu5FuEWp74ahPd4BD9PzLDpsYBeDxqdnPpri/videotogif_2018.07.09_03.55.29.gif The gif clip above shows an example of how all the suggested features should look like and how they are meant to be after selecting each button.

Benefits

These suggested features will improve the application and improve the usability of the app, as more useful features will increase the download of the application.

Video to gif - This will enable easy conversion of videos to gif directly on the application, without having to download other applications to do that.

Mute mp3 - Sounds on a particular video will be made easy to be muted and saved on the application, to deactivate sounds in the application. Bug hunters on Utopian will find this feature useful also, as they will be able to deactivate sounds on screen record.

External mp3 - This feature will enable users extract only the mp3 on the video, without having the clip, just making the video save as audio.

Merge videos - This will enable users merge m than one video, and complying them together.

Fast motion and slow motion - This feature will enable users increase and decrease the speed of a video, and can be saved easily.

Reverse - This will enable users save a reversed version of a video, this can serve as a magic for example: drinking a juice (and spitting it out as a result)

festurecrequest: cut image

Not only cut the time but also the image (cut away unnaccecery black borders eg) would be quite nice.

Thanks

Add "Profiles"

...and ability to save current settings as "ProfileXXX"

don't force portrait mode

On a phone its ok, but on a tablet or even desktop/convertible that's supposed to stand and not to be holdn by hand its quitecbad to forcecthe portrait mode. Please use the sensor/fixed mode as given from the system and dont be one out of a few app that annoys users by forcing portrait mode needlessly on such a big screen (and even not on a little (your able of scrolling i guess)

Thanks.

Forcing a mode should be dedicated to games only

Thanks

IllegalStateException from MediaPlayer

Reported via email:

version: 0.11
os: Linux samsung/j3popltespr/j3popltespr:6.0.1/MMB29M/J327PVPU3AQL3:user/release-keys 6.0.1 - 23

exceptions:
java.lang.IllegalStateException
at android.media.MediaPlayer.seekTo(Native Method)
at android.widget.VideoView.seekTo(VideoView.java:796)
at protect.videotranscoder.activity.MainActivity.startVideoPlayback(MainActivity.java:939)
at protect.videotranscoder.activity.MainActivity.access$1100(MainActivity.java:81)
at protect.videotranscoder.activity.MainActivity$10.run(MainActivity.java:948)
at java.util.Timer$TimerImpl.run(Timer.java:284)

App crash when selecting video crop

01-17 22:34:36.015 10672 32319 E AndroidRuntime: java.lang.IllegalStateException: Timer already cancelled.
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at java.util.Timer.sched(Timer.java:397)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at java.util.Timer.schedule(Timer.java:193)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at protect.videotranscoder.activity.MainActivity.startVideoPlayback(MainActivity.java:516)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at protect.videotranscoder.activity.MainActivity.access$400(MainActivity.java:70)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at protect.videotranscoder.activity.MainActivity$6.run(MainActivity.java:521)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at java.util.TimerThread.mainLoop(Timer.java:555)
01-17 22:34:36.015 10672 32319 E AndroidRuntime: 	at java.util.TimerThread.run(Timer.java:505)

Remember "last used folder"

...so I don't have to navigate, scroll, enter 5 folders for each and every video file, given that all of them would be in the same place, the one where the camera app saves them /sdcard/DCIM/...

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

Logo contribution

Hi! If you need a icon for your app i can help you. You just have to write what kind of thing do you want, then i'll design it as you want!

Change app's purpose?

I've always needed, but have never came across a good, full ffmpeg app I can use on Android. Since this app uses ffmpeg, turning this app into a general purpose transcoder would greatly increase its use cases. It would quickly be a must have for me and many more people imp.

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

Logo Design: Video-transcoder

Hello!

I'm a graphic designer and I like to support open source projects. I would like to re-design your logo if you interested, I will be happy to work with you! :)

Best Regards

Baran Pirinçal

Graphic Designer

feture request: build a non linear editor out of that

Just as simple, or even more simple, as live movie maker or so. Some simple efects (audio volume change, video color change, cut image mix stereo to mono, etc) cut different videos together with some easy transition and put some music in the background or record while playimg (dubbing mode)

Thats totalcenough to have on the go and shouldnt be to difficulty to implement cause there are enough open source command line tools (!aybe ffmpeg itself is still enough) to do so. Only thing to do is to test them and build some andriid gui that is creating some script that is run (like how the ffmpeg command syntax)

Would be of cause a rather far milestone but not to far i guess and would be really grate to have

If you do i, thanks a lot in advance

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

feature request: pick maximum file size instead of bitrate

often when I'm transcoding a video it is to make it fit within a file size limit, and i end up having to do some math to figure out what is the best bitrate i can set while staying under that size. I'd like the ability to pick a maximum size in MB and have video transcoder pick (or suggest) an appropriate bitrate

Bad notification for startForeground: invalid channel for service notification

The following was reported by a user:

user_action: ui error
request: App crash, UI failure
content_language: en
service: none
package: protect.videoeditor
version: 0.8
os: Linux Android P - 27
time: 2018-05-19 05:15

exceptions:

android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=null pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x42 color=0x00000000 vis=PRIVATE)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1724)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6649)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)

The issue is that in Android 8.1 a notification channel is required, and failing to create one is a RemoteServiceException.

Resolution

Add option (same as input )& add ( 50% , 35%) ...

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.

Fix GIF

Encoding to GIF is very slow and takes more memory compared to previous FFmpeg releases.

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

Consider adding system encoders

Hi,
one question, could you please consider allowing us to use the "system provided" encoders?
For example my phone has hardware vp8 and H265 encoder, but so far I have not found a way to use it with any app.

Thank you for consideration.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.