#2537: Handle some short videos#2863
Conversation
FFprobe is called only if MPlayer fails to get video dimensions: "(result.getDimension() == null || result.getDimension().width == 0 || result.getDimension().height == 0)". Updates VideoProcessResult to handle FFprobe output data (new method "setVideoInfoFFprobe").
|
Thank you @hugohmk! Just to be sure, the license of this new dependency is not GPL, right? @wladimirleite, if and when you have available time, would you mind to help reviewing this? |
|
Hello @lfcnassif! I belive it is Apache 2.0 or GPL2+ with a "Classpath" exception, according to the license details found in the dependency's github page (https://github.com/bytedeco/javacpp-presets and https://github.com/bytedeco/javacpp-presets/tree/master/ffmpeg). Its Maven repository page also states that it is under these licenses: "Apache License, Version 2.0", "GNU General Public License (GPL) version 2, or any later version" and "GPLv2 with Classpath exception". There seems to be another version of this dependency (ffmpeg-platform-gpl, https://mvnrepository.com/artifact/org.bytedeco/ffmpeg-platform-gpl) that the author states it is contains "Optional GPL builds with (almost) everything enabled", but it doesn't make clear the licensing differences between the two. Maybe the author (@saudet) could enlighten us about this issue. |
|
Thanks @hugohmk. I also understood it is dual licensed under Apache v2 or GPL v2+, I also found ffmpeg-platform-gpl, but I found it a bit confusing and asked to be sure. |
|
I forgot to mention that FFmpeg itself is licensed under LGPLv2.1+, or GPLv2+ if compiled with some optional features and capabilities (https://www.ffmpeg.org/legal.html). |
|
Thanks! And I double checked an Apache licensed project (the new dependency) can use an LGPL dependency without licensing issues. |
About ffmpeg-platform-gpl? If your application depends on a GPL-licensed library, it becomes licensed under GPL. So, for example, if IPED depends on functionality available only in ffmpeg-platform-gpl then IPED becomes automatically licensed under GPL. That's what it means. |
Thank you for the fast response @saudet, and congratulations on your work on bytedeco! In IPEDs case, I think either ffmpeg-platform or ffmpeg-platform-gpl dependency would bring similar licensing obligations, since FFmpeg is actually only being called as a CLI program, run in a separate process via ProcessBuilder (but I'm not 100% sure). But since I am not familliar with these licensing differences, your comment was very helpful. |
|
If the application only launches executables in separate processes, then yes GPL doesn't typically apply to the application. |
It usually doesn't propagate GPL, but it might, see this GPL FAQ excerpt:
It's not the case of IPED, we would not exchange complex internal data structures with ffmpeg. |
Great! So I guess there will be no issues using ffmpeg-platform-gpl then... If I'm not mistaken, MPlayer is licensed under GPLv2 as well. |
|
If only some users need the extra gpl dependency, you can leave it up to them to add it to their builds. |
As discussed in issue #2537, FFmpeg could be used to handle some corner cases where MPlayer fails to read video info or generate thumbs. The proposed aproach only calls FFprobe/FFmpeg as a fallback to the current solution.