Is there any way to cut a video (mp4 or 3gp) on android, like use only the last 5 seconds of the movie... on iphone this is possible using the AVAssetExportSession but on an
We can cut video using ffmpeg in Android.
For integrating FFmpeg in android we can use precompiled libraries like ffmpeg-android.
To cut a video with re-encoding ,we can use below command-
String[] complexCommand = {"-ss", "" + startMs / 1000, "-y", "-i", inputFileAbsolutePath, "-t", "" + (endMs - startMs) / 1000, "-s", "320x240", "-r", "15", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050", outputFileAbsolutePath};
Here,
-ss
seeks to position
-y
Overwrite output files without asking.
-i
ffmpeg reads from an arbitrary number of input “files” specified by the -i option
-t
limit the duration of data read from the input file
-s
video output size
-r
Set frame rate
-vcodec
Set the video codec.
-b:v
Set the video bitrate
-b:a
Set the audio bitrate
-ac
Set the number of audio channels.
-ar
sets the sampling rate for audio streams if encoded
startMs
start time of video in milliseconds from where you want to cut
endMs
end time of video in milliseconds up to which you want to cut
To cut a video without re-encoding ,we can use below command-
String[] complexCommand = { "-y", "-i", inputFileAbsolutePath,"-ss", "" + startMs / 1000, "-t", "" + (endMs - startMs) / 1000, "-c","copy", outputFileAbsolutePath};
Here,
-c copy copies the video, audio and bit stream from the input to the output file without re-encoding them.
I have created a sample android project on editing videos using FFMpeg which includes cutting video.Check it out-
https://github.com/bhuvnesh123/FFmpeg-Video-Editor-Android
and its tutorial at-
https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/