arthenica / ffmpeg-kit

FFmpeg Kit for applications. Supports Android, Flutter, iOS, Linux, macOS, React Native and tvOS. Supersedes MobileFFmpeg, flutter_ffmpeg and react-native-ffmpeg.
https://arthenica.github.io/ffmpeg-kit
GNU Lesser General Public License v3.0
4.52k stars 603 forks source link

Cannot use ffmpeg-kit and javacv-ffmpeg at the same time, conflict occurs #1026

Open dixtdf opened 3 months ago

dixtdf commented 3 months ago

Description A clear and concise description of what the bug is.

Expected behavior I want to use ffmpeg-kit and javacv-ffmpeg at the same time

Current behavior 2 files found with path 'lib/armeabi-v7a/libavcodec.so' from inputs:

To Reproduce implementation 'com.arthenica:ffmpeg-kit-full:6.0.LTS' def javacvVersion = '1.4.2' def ffmpegVersion = '4.0.1' def opencvVersion = '3.4.2' api(group: 'org.bytedeco', name: 'javacv-platform', version: javacvVersion) { exclude group: 'org.bytedeco.javacpp-presets' } api group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}" api group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}", classifier: 'android-arm' // api group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: "${ffmpegVersion}-${javacvVersion}", classifier: 'android-arm64' api group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: "${opencvVersion}-${javacvVersion}" api group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: "${opencvVersion}-${javacvVersion}", classifier: 'android-arm' api group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: "${opencvVersion}-${javacvVersion}", classifier: 'android-arm64'

Environment Android

github-actions[bot] commented 1 month ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

tanersener commented 3 weeks ago

Having FFmpeg libraries from the two different sources is difficult problem to solve.

dixtdf commented 3 weeks ago

Having FFmpeg libraries from the two different sources is difficult problem to solve.

I also think so, if they are completely solved in a back-end program on a lot of ways, unfortunately it is Android, I have not found the right way at present, I can only choose one of two, the conflicting features use java server implementation, the client always has some strange ideas

dixtdf commented 3 weeks ago

Maybe the need itself is unreasonable 😂

tanersener commented 3 weeks ago

I believe this need, while rare, is valid.

For Apple platforms, I've outlined options in the wiki Using Multiple FFmpeg Implementations in the Same Application on Apple Platforms.

For Android we don't have a wiki because there isn't much to cover. However, if the Android Gradle Plugin introduces support for selecting a native library from a specific dependency, as described in this feature request, we would then have similar options available for Android as well.

dixtdf commented 3 weeks ago

I believe this need, while rare, is valid.

For Apple platforms, I've outlined options in the wiki Using Multiple FFmpeg Implementations in the Same Application on Apple Platforms.

For Android we don't have a wiki because there isn't much to cover. However, if the Android Gradle Plugin introduces support for selecting a native library from a specific dependency, as described in this feature request, we would then have similar options available for Android as well.

It would be great if it could be configured through documentation guidance, which could pave the way for later generations. However, if contributors need to make significant changes, I don't think it's very necessary

tanersener commented 3 weeks ago

We will document it as soon as we have something to share.