Code Monkey home page Code Monkey logo

Comments (13)

izzytwosheds avatar izzytwosheds commented on September 27, 2024 2

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.

natario1 avatar natario1 commented on September 27, 2024 1

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.

izzytwosheds avatar izzytwosheds commented on September 27, 2024 1

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.

ItsJamesTice avatar ItsJamesTice commented on September 27, 2024 1

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.

izzytwosheds avatar izzytwosheds commented on September 27, 2024 1

@sauravexodus Most probably we will open source it before DeMuxed, but I will be giving a talk about it there :)

from android-transcoder.

izzytwosheds avatar izzytwosheds commented on September 27, 2024 1

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.

izzytwosheds avatar izzytwosheds commented on September 27, 2024 1

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.

ypresto avatar ypresto commented on September 27, 2024

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.

ypresto avatar ypresto commented on September 27, 2024

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.

ypresto avatar ypresto commented on September 27, 2024

Thank you all for the celebration...! It's very hard but nice project I've ever joined. 🍼

@izzytwosheds

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.

selsamman avatar selsamman commented on September 27, 2024

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.

sauravexodus avatar sauravexodus commented on September 27, 2024

@izzytwosheds Are you guys planning to launch it in the upcoming Demuxed event? :)

https://2019.demuxed.com/

from android-transcoder.

sauravexodus avatar sauravexodus commented on September 27, 2024

Great news man! Looking forward for it.

from android-transcoder.

Related Issues (20)

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.