lettier / movie-monad

:tv: A free and simple to use video player made with Haskell.
https://lettier.github.io/movie-monad
BSD 3-Clause "New" or "Revised" License
420 stars 24 forks source link

Flathub Flatpak does not play videos that use license restricted codecs in container formats such as MP4, AVI, and MOV. #12

Open lettier opened 6 years ago

lettier commented 6 years ago

Flatpak does not include, with the GNOME runtime, the gst-libav plugin needed to play license restricted audio/video codecs (usually used in containers such as MP4, AVI, and MOV).

https://github.com/flathub/org.libreoffice.LibreOffice/issues/20#issuecomment-368578102

The AppImage can play videos using such codecs only if the host system user has installed gst-libav and the codecs themselves. The AppImage does not distribute gst-libav or any codecs. The AppImage is capable of using what the host system has.

In comparison, the Flatpak can only use what is provided by the sand-boxed, runtime environment and cannot use what is present on the host system. Since gst-libav is not provided by the Flatpak GNOME runtime, the Movie Monad Flatpak cannot play most MP4, AVI, MOV, and MKV video files.

Until gst-libav is provided by the Flatpak GNOME runtime, Movie Monad will be limited in its playback capabilities. Users are recommended to use the provided AppImage or binaries.

The Flatpak Movie Monad can play videos that use such codecs as Theora, Vorbis, VP8, and VP9 (typically used in containers such as WebM and OGV).

For more information, see Audio/video formats: Licensing and patents.

:+1:

nedrichards commented 6 years ago

If you wish, you can bundle gst-libav like LibreOffice does (and a few other apps) you can select the subset of codecs you wish to enable.

lettier commented 6 years ago

Hello @nedrichards,

Thank you for commenting.

Yes, as I linked up above, LibreOffice manually bundles gst-libav but only as an interim solution. By the looks of it, they don't disable the problematic, patent-encumbered codecs so maybe they have a license to distribute H.264 and AAC or are in an area that doesn't recognize software patents?

The problem with gst-libav, is that it contains an internal copy of the libav/FFmpeg source.

Like you said, the manifest could enable only those codecs which can be freely distributed but without access to H.264 and AAC, most videos are unusable since those two codecs are so popular with content producers.

As I understand it, Flathub plans to add gst-libav (possibly as a platform extension)? With so many manifests bundling gst-libav themselves I second this comment from @ramcq.

Currently, Flathub provides a FFmpeg platform extension that includes the problematic but popular codecs. Could there be a similar extension but for gst-libav where users would install the extension for their own personal use which I believe is allowed? This would free upstream project developers from having to run the risk of bundling gst-libav themselves.

In any case, this issue is in place to clear up any misconception as to why the Flathub Movie Monad Flatpak cannot play certain videos.

:+1: