Bundle FFmpeg in the Windows installer
Open, NormalPublic

Description

I've already made some preparation for bundling a static build of FFmpeg into the Windows installers (and zip packages). I intend to use the builds from here: https://ffmpeg.zeranoe.com/builds/ (the 4.0 static builds for Windows 64-bit or 32-bit depending on build target). Only ffmpeg.exe and the README/LICENSE text files are to be included.
I've tried with the 64-bit build: bundling FFmpeg adds 14.6MB to the installer. When it is actually installed, it uses up 59.5MB of disk space.

I have a few questions before proceeding:

  1. Should it be bundled with the installer and packages (i.e. should I proceed with this task)?
  2. Should the FFmpeg component be an optional choice in the installer? Should it be selected by default? (Alvin: I think it should be selected by default but can be deselected by the user.)
  3. Are there any licensing implications? (It is GPLv3 so it should be fine?) Do I need to add any additional license text to the installer? (The installer already contains a GPLv3 text but that specifically refers to Krita.)
  4. Should it still be downloaded in the 3rdparty dependency build like other deps?
  5. Should @rempt make a zip with only ffmpeg.exe and the README/LICENSE text files (for each of 32-bit and 64-bit) to files.kde.org, or should I have CMake download the complete static build zip file?
  6. Are there any other issues with doing this?
alvinhochun triaged this task as Normal priority.
alvinhochun updated the task description. (Show Details)May 22 2018, 8:30 PM
alvinhochun added a subscriber: rempt.
rempt added a comment.May 23 2018, 7:39 AM

Ben noted on irc that we should use a stripped down version like suse does -- but I'm not sure whether that's an option.

Ideally we'd bundle it.

I'm not sure about giving people an opt-out is all that useful.

We should note that we include ffmpeg in the license text in the installer.

I would prefer to have it downloaded like any 3rdparty component

About 5, I'm not sure what would be best...

  1. I would say it needs to be bundled with the installers and packages.
  2. it should not be mentioned in the installer. It should just be included
  3. not sure
  4. I would say keep it in the 3rd party components like boud says
  5. whatever boud wants

I think this is a great idea! There is so much confusion by artists right now on why their animation won't export. This will make it a lot easier for people if it just works out of the gate.

In T8803#143757, @rempt wrote:

Ben noted on irc that we should use a stripped down version like suse does -- but I'm not sure whether that's an option.

I don't see it in the backlog, it's overflown :( What does stripped down mean here? Custom build with limited features enabled?

Ideally we'd bundle it.

Yep.

I'm not sure about giving people an opt-out is all that useful.

Well, it does take a bit more space, I don't know if people would start complaining about that 8) Also not every users would need to render animations.

We should note that we include ffmpeg in the license text in the installer.

If you feel like doing it, can you make a copy of the license rtf and add the text there?

I would prefer to have it downloaded like any 3rdparty component

About 5, I'm not sure what would be best...

If files.kde.org doesn't mind 40MB extra of traffic with every deps build done, then it's simpler if you just just throw the original zeranoe build 4.0 packages up there, and I'll add the ExternalProject in CMake to fetch them. Would probably also make future updates easier.

  1. it should not be mentioned in the installer. It should just be included

I get it that you probably don't want to confuse users, but would showing an option really be a huge issue? At this rate it would seem that the Windows build should even just have the ffmpeg path selection box hidden and the path hard-coded.

@windragon - it isn't really that big of an issue if it is there. The word ffmpeg is a pretty technical term, so I don't expect most people to understand what that even is. If we do have an option in the installer, I would like some mention that it is needed to export animations. That would be good enough for me.

The path could be hard coded since we know exactly where ffmpeg will be at.