linkedin / LiTr

Lightweight hardware accelerated video/audio transcoder for Android.
BSD 2-Clause "Simplified" License
613 stars 85 forks source link

Why is the new library migrating to ffmpeg #240

Closed pawaom closed 1 year ago

pawaom commented 1 year ago

Why is the new library migrating to ffmpeg

The basic utility of litr was it used mediacodec/mediamuxer provided by android itself, ffmpeg has a lot of licensing requirements and the biggest drawback is its too slow on android.

Why have you decided to use ffmpeg ? there are few mediacodec/mediamuxer based libraries which provide lots of solutions for various video processing problems, its a request dont use ffmpeg for future development

izzytwosheds commented 1 year ago

LiTr is not migrating to ffmpeg, it is adding very limited support for optional use of muxers offered by ffmpeg. Specifically, writing into fMP4 container. All other functionality in ffmpeg is disabled. ffmpeg functionality is optional and should be used by LiTr clients explicitly. LiTr's default logic of using Android MediaCodec stack is not affected.

pawaom commented 1 year ago

what are the licensing requirements (for litr and ffmpeg) we need to mention, in case we plan to use the Litr library in our project, also can you specify the oboe library, licensing requirments, there is a folder called analytics, with the new data collection details requirement for play store and other such stores, a better documentation for these will be helpful. also it will be better if we have an opption to exclude ffmpeg specific code from the library, like if the library is module based we can exclude it.

izzytwosheds commented 1 year ago

LiTr is free to use. Oboe you should double check, but a lot of apps already use it, so I would think it is safe to use as well. ffmpeg is opt-in only and encoding in it is disabled (bunch of codecs are not free to encode) I will add more documentation on analytics, I was planning to refactor it a bit, anyway. But LiTr doesn't collect any personal data - analytics is only for providing detailed information about how transcoding process went (which tracks were transcoded, which codecs were used, how long each track took, etc.), you would use it for performance tracking.

pawaom commented 1 year ago

thanks , I hope ffmpeg will be like the filter, gradle like an option, if we dont include it we are not supposed to worry about it.

izzytwosheds commented 1 year ago

It is already set up like that. ffmpeg is available only in litr-muxers module, it will never be used in litr module.