Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/deepmedia/Transcoder
🎞 Hardware-accelerated video transcoding using Android MediaCodec APIs. Supports cropping, concatenation, clipping, audio processing, video speed and much more.
https://github.com/deepmedia/Transcoder
android android-library audio-samples crop-video egl h264 hardware-acceleration mediacodec mp4 opengl opengl-es transcoding video-compression video-compressor video-concatenation video-crop video-editing video-processing video-speed
Last synced: 3 months ago
JSON representation
🎞 Hardware-accelerated video transcoding using Android MediaCodec APIs. Supports cropping, concatenation, clipping, audio processing, video speed and much more.
- Host: GitHub
- URL: https://github.com/deepmedia/Transcoder
- Owner: deepmedia
- License: apache-2.0
- Created: 2018-12-13T17:42:20.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-08-15T13:35:51.000Z (3 months ago)
- Last Synced: 2024-08-16T12:12:17.218Z (3 months ago)
- Topics: android, android-library, audio-samples, crop-video, egl, h264, hardware-acceleration, mediacodec, mp4, opengl, opengl-es, transcoding, video-compression, video-compressor, video-concatenation, video-crop, video-editing, video-processing, video-speed
- Language: Java
- Homepage: https://opensource.deepmedia.io/transcoder
- Size: 13 MB
- Stars: 765
- Watchers: 25
- Forks: 163
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-list - deepmedia/Transcoder - 🎞 Hardware-accelerated video transcoding using Android MediaCodec APIs. Supports cropping, concatenation, clipping, audio processing, video speed and much more. (Java)
README
[![Build Status](https://github.com/deepmedia/Transcoder/actions/workflows/build.yml/badge.svg?event=push)](https://github.com/deepmedia/Transcoder/actions)
[![Release](https://img.shields.io/github/release/deepmedia/Transcoder.svg)](https://github.com/deepmedia/Transcoder/releases)
[![Issues](https://img.shields.io/github/issues-raw/deepmedia/Transcoder.svg)](https://github.com/deepmedia/Transcoder/issues)![Project logo](assets/logo-256.png)
# Transcoder
Transcodes and compresses video files into the MP4 format, with audio support, using hardware-accelerated
Android codecs available on the device. Works on API 21+.- Fast transcoding to AAC/AVC
- Hardware accelerated
- Convenient, fluent API
- Thumbnails support
- Concatenate multiple video and audio tracks [[docs]](https://opensource.deepmedia.io/transcoder/concatenation)
- Clip or trim video segments [[docs]](https://opensource.deepmedia.io/transcoder/clipping)
- Choose output size, with automatic cropping [[docs]](https://opensource.deepmedia.io/transcoder/track-strategies#video-size)
- Choose output rotation [[docs]](https://opensource.deepmedia.io/transcoder/advanced-options#video-rotation)
- Choose output speed [[docs]](https://opensource.deepmedia.io/transcoder/advanced-options#video-speed)
- Choose output frame rate [[docs]](https://opensource.deepmedia.io/transcoder/track-strategies#other-options)
- Choose output audio channels [[docs]](https://opensource.deepmedia.io/transcoder/track-strategies#audio-strategies)
- Choose output audio sample rate [[docs]](https://opensource.deepmedia.io/transcoder/track-strategies#audio-strategies)
- Override frames timestamp, e.g. to slow down the middle part of the video [[docs]](https://opensource.deepmedia.io/transcoder/advanced-options#time-interpolation)
- Error handling [[docs]](https://opensource.deepmedia.io/transcoder/events)
- Configurable validators to e.g. avoid transcoding if the source is already compressed enough [[docs]](https://opensource.deepmedia.io/transcoder/validators)
- Configurable video and audio strategies [[docs]](https://opensource.deepmedia.io/transcoder/track-strategies)```kotlin
// build.gradle.kts
dependencies {
implementation("com.otaliastudios:transcoder:0.11.0")
}
```*This project started as a fork of [ypresto/android-transcoder](https://github.com/ypresto/android-transcoder).
With respect to the source project, which misses most of the functionality listed above,
we have also fixed a huge number of bugs and are much less conservative when choosing options
that might not be supported. The source project will always throw - for example, accepting only 16:9,
AVC Baseline Profile videos - we prefer to try and let the codec fail if it wants to*.*Transcoder is trusted and supported by [ShareChat](https://sharechat.com/), a social media app with
over 100 million downloads.*Please check out [the official website](https://opensource.deepmedia.io/transcoder) for setup instructions and documentation.
You may also check the demo app (under `/demo`) for a complete example.```kotlin
Transcoder.into(filePath)
.addDataSource(context, uri) // or...
.addDataSource(filePath) // or...
.addDataSource(fileDescriptor) // or...
.addDataSource(dataSource)
.setListener(object : TranscoderListener {
override fun onTranscodeProgress(progress: Double) = Unit
override fun onTranscodeCompleted(successCode: Int) = Unit
override fun onTranscodeCanceled() = Unit
override fun onTranscodeFailed(exception: Throwable) = Unit
}).transcode()
```