Comments (13)
Any chance you guys are still planning on open sourcing this?
Yes. I am working on it. Stay tuned, good news coming very soon.
from android-transcoder.
I have added docs to the repo at natario1/Transcoder where I also list what has changed. If anyone wants to take a look and join, that would be cool!
Thanks for your work @ypresto and congrats for your 👶!
from android-transcoder.
First and foremost, @ypresto congratulations on a 👶! That is an amazing and very rewarding project, and it should definitely take priority! :) Also, a huge thanks for writing and open sourcing android-transcoder, it is an amazing project.
I agree 100% on stability. Our transcoder (called LiTr) is engineered for stability and is currently used in LinkedIn app, which is a very large user base. It has a very test-friendly architecture and extensive test coverage.
So the issue is that LiTr has a pretty different set of APIs from android-transcoder (they are a bit more generic), and it is architected differently internally. For example, there are several abstractions which allow MediaCodec layer to be mocked, so we can test transcoder logic using unit testing. This results in a pretty large diff between the two. If I start changing android-transcoder into LiTr, there will be a lot of pull requests, which I don't want to make you review because it will take your attention away from the baby. :)
So maybe we can do this. I can open source LiTr independently, so community can see its code and decide if that is something they can/want to work with. At that point, we can decide if it is ok to switch over to LiTr or merge it with android-transcoder. My personal goal is to have a common 1.0 version of video transcoder for Android, with production grade stability. What do you think?
from android-transcoder.
First and foremost, @ypresto congratulations on a 👶! That is an amazing and very rewarding project, and it should definitely take priority! :) Also, a huge thanks for writing and open sourcing android-transcoder, it is an amazing project.
I agree 100% on stability. Our transcoder (called LiTr) is engineered for stability and is currently used in LinkedIn app, which is a very large user base. It has a very test-friendly architecture and extensive test coverage.
So the issue is that LiTr has a pretty different set of APIs from android-transcoder (they are a bit more generic), and it is architected differently internally. For example, there are several abstractions which allow MediaCodec layer to be mocked, so we can test transcoder logic using unit testing. This results in a pretty large diff between the two. If I start changing android-transcoder into LiTr, there will be a lot of pull requests, which I don't want to make you review because it will take your attention away from the baby. :)
So maybe we can do this. I can open source LiTr independently, so community can see its code and decide if that is something they can/want to work with. At that point, we can decide if it is ok to switch over to LiTr or merge it with android-transcoder. My personal goal is to have a common 1.0 version of video transcoder for Android, with production grade stability. What do you think?
Any chance you guys are still planning on open sourcing this?
from android-transcoder.
@sauravexodus Most probably we will open source it before DeMuxed, but I will be giving a talk about it there :)
from android-transcoder.
LiTr source code is now on GitHub: https://github.com/linkedin/LiTr
@ypresto @selsamman @MasayukiSuda @natario1 please take a look, let me know what you think. I did my best to make LiTr pluggable, to allow amazing complex things other devs have been doing on their forks of android-transcoder
from android-transcoder.
I will be talking about LiTr tomorrow at DeMuxed. @ypresto there will be a special "thank you" to you in my presentation, I hope you are ok with that. :)
from android-transcoder.
There are multiple forks ongoing, I want to summarize the current situation first.
List of ongoing forks I know (create date order):
- @ypresto This library.
- For normalize and shrink video keeping its aspect ratio.
- Intended for video recorded by current device, for use without user prompt per transcode (like Google Photo does. Actually used by million-downloaded family album app mitene).
- So stability (between hardware codecs) is the first priority.
- Author is currently too busy because 👶 is 🏃 😊 💥 💥 👫 😱 😭 😫.
- @selsamman https://github.com/selsamman/android-transcoder
- ffmpeg-grade video editor, as discussion in #25. Started 2 years ago.
- At 06/2021, it seems not receiving commits than other forks.
- @MasayukiSuda https://github.com/MasayukiSuda/Mp4Composer-android
- Customizing resolution, rotation, and filter feature like GPUImage in iOS. 1 year ago.
- I think this fits majority of usecases, where developer needs feature over codec stability.
- At 06/2021 700+ stars. Fluent API like Picasso/Glide.
- If you just want to "transcode" (and filter) a video for upload, and prefer simple library & fluent API, go with this.
- @izzytwosheds @linkedin LiTr https://github.com/linkedin/LiTr
- At 06/2021 almost 300 stars.
- Filter feature is supported, which is ported from Mp4Composer-android.
- Supports resampling Audio, reposition video on transform.
- This one also seems good if you need a simple library.
- At 11/2022 only this one is receiving update in 2022.
- @natario1 #71 https://github.com/natario1/Transcoder
- Major interface refactoring, supports custom resizing logic, URI data source. A few hours ago.
- Supports changing aspect ratio.
- At 06/2021 only this one is written in Kotlin. 300+ stars.
- Fluent API like Picasso/Glide.
- Supports resampling Audio, replacing audio.
- Only this one supports video concatenation and changing speed, so if you want to create video "editor", go with this.
Also note that this library is depended from https://github.com/jbavari/cordova-plugin-video-editor https://github.com/dride/cordova-plugin-video-editor , so, majority feature requests and bug reports seems to come from it.
from android-transcoder.
FYI
mitene team is to considering take ownership of android-transcoder (as I'm already ex of the team).
I'm looking for company-grade maintenance of this lib or its successor.
from android-transcoder.
Thank you all for the celebration...! It's very hard but nice project I've ever joined. 🍼
I agree with you, we need common one.
I can open source LiTr independently, so community can see its code and decide if that is something they can/want to work with. At that point, we can decide if it is ok to switch over to LiTr or merge it with android-transcoder.
Let's go with this..! I want to see all candidates before deciding the future of this library. Could you publish code of LiTr? :)
from android-transcoder.
There are so few samples of code out there for transcoding. @ypresto did an amazing job of pulling this project together. Seeing another approach would also be welcome and I look forward to having a look at the @izzytwosheds implementation of transcoding when that is open sourced.
My own fork https://github.com/selsamman/android-transcoder (docs updated now) is more of a video composer than a transcoder. I think having a simple reference implementation of a transcoder that is ultra-stable is a great idea. The video composition, multiple streams, multiple segments within streams in my fork added significant complexity. This was needed for the video editing app I am developing but is overkill for most transcoding use cases.
That being said I am happy to contribute any knowledge I have gained with my fork to other transcoding efforts going forward. I would also welcome contributors to my fork if anyone else has a need for the composition features.
from android-transcoder.
@izzytwosheds Are you guys planning to launch it in the upcoming Demuxed event? :)
from android-transcoder.
Great news man! Looking forward for it.
from android-transcoder.
Related Issues (20)
- landscape and portrait HOT 2
- Release notes for version 0.3.0? HOT 2
- Is this library can work on "older API"? HOT 3
- MediaFormatValidator.validateAudioOutputFormat validates the inputFormat instead of outputFormat HOT 2
- Non-baseline AVC video profile is not supported by Android OS (Android 9.0) HOT 9
- Update novoda version and Android target SDK
- I use 0.3.1 still encounter the problem HOT 1
- Cannot process video for bad input file
- 0.3.1 release? HOT 2
- Generate Video from images HOT 3
- increase the video compression level HOT 1
- Simple crop
- Problems with anamorphic videos
- coryjthompson / android-transcoder HOT 1
- Discussion: what are the (near future) plans for android-transcoder? HOT 2
- seekTo
- java.lang.IllegalArgumentException: extractor does not contain video and/or audio tracks.
- HEVC encoding support?
- HE-AAC has half of the sample rate, How to support?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from android-transcoder.