Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use VP9+Opus on MKV by default #198

Merged
merged 3 commits into from
Dec 24, 2022
Merged

Conversation

Conan-Kudo
Copy link
Contributor

@Conan-Kudo Conan-Kudo commented Dec 21, 2022

This PR stacks on top of #197 to change the default for wf-recorder to use only royalty-free codecs by default.

Fixes #196

@Conan-Kudo
Copy link
Contributor Author

@alebastr, @bhepple: this might help for #196 and the Fedora packaging of wf-recorder.

@Conan-Kudo Conan-Kudo force-pushed the vp9-by-default branch 4 times, most recently from 3933ab2 to 1c3a1e7 Compare December 22, 2022 11:27
@Conan-Kudo Conan-Kudo marked this pull request as ready for review December 23, 2022 14:41
@Conan-Kudo
Copy link
Contributor Author

@bhepple confirmed for me this works as expected, so I'm opening this for review.

@ammen99
Copy link
Owner

ammen99 commented Dec 24, 2022

It seems fine to me to add the default paramts for vp9, but why does this have to be changed upstream? Can't fedora packagers override the defaults? That's why they are defined as meson options.

EDIT: It also seems ok to me to add a new meson option for whether the default filename should be a .mp4 or .mkv, seems a better solution than changing one hardcoded value to another.

@Conan-Kudo
Copy link
Contributor Author

Conan-Kudo commented Dec 24, 2022

It seems fine to me to add the default paramts for vp9, but why does this have to be changed upstream?

Default params are in #197 and needed so it works properly when the user selects vp9, I'm just stacking on top for changing the actual defaults used.

Can't fedora packagers override the defaults? That's why they are defined as meson options.

I can certainly make the container default configurable too. Though, my plea is that the upstream default should use royalty free codecs because it's better for the user, distributor, and the ecosystem at large. We should promote formats that aren't encumbered and cause problems for people depending on where they are.

Using high-quality royalty-free codecs by default makes this usable
in many more environments by default. In particular, distributions
like Fedora and openSUSE have limited builds of FFmpeg that do not
include encumbered codecs. This change makes it usable for them
out of the box by default without breaking broad support anywhere
else.
wf-recorder is being added to the main Fedora repositories.
This allows configuration of the file format if a distributor wants
to use a different default from mkv.
@ammen99 ammen99 merged commit 64b2338 into ammen99:master Dec 24, 2022
@Conan-Kudo Conan-Kudo deleted the vp9-by-default branch December 24, 2022 14:01
@ammen99
Copy link
Owner

ammen99 commented Dec 24, 2022

Thanks!

@llyyr
Copy link
Contributor

llyyr commented Dec 25, 2022

I'm not sure this is a good change, most users expect their videos to work on the web but most mobile apps and even a lot of instant messaging apps such as Facebook/Whatsapp/Line/Discord/Twitter only support h264 (and vp8 in some cases). It's fine to add sensible defaults for libvpx but I don't agree with the change that wf-recorder should default to using VP9+Opus and the mkv container.

Someone who's not familiar with video codecs uploading their video on Facebook and finding out that it doesn't work for some mysterious reason is going to cause more issues than someone using a specific Linux distro that doesn't happen to have hardware decoding for a certain video codec.

Fedora should set these options at build time, there's no need for upstream to change defaults to suit one distro while causing issues for the majority

@Conan-Kudo
Copy link
Contributor Author

Someone who's not familiar with video codecs uploading their video on Facebook and finding out that it doesn't work for some mysterious reason is going to cause more issues than someone using a specific Linux distro that doesn't happen to have hardware decoding for a certain video codec.

So I just did some testing the services I do have:

  • Telegram supports VP8 WebM
  • Discord supports VP8 WebM
  • Element supports VP8 WebM
  • Facebook supports VP8 WebM and VP9 MKV
  • Twitter doesn't even let me upload any video.

I can change the default to VP8+Vorbis WebM, which works across all these services. It also matches the default for GNOME and other desktops that have built-in screen recording.

@ammen99
Copy link
Owner

ammen99 commented Dec 25, 2022

I think GNOME's default should be good enough for us.

@0atman
Copy link

0atman commented Sep 4, 2023

These changes just came through to arch and broke my workflow, which until today relied on the default being mp4.
(My editor, reaper.fm, which uses libffmpeg and libvlc can't read the files wf-recorder now produces by default.)

It's no trouble for me to look up the right combination of command flags to switch it back to something that I can use, but please note that changing the default behaviour has huge effects on your users that we do not expect from a minor version release.

@0atman
Copy link

0atman commented Sep 4, 2023

I'm not sure I agree with @Conan-Kudo 's reasoning that if all these social media platforms support webm, that makes it a sensible default. Who screenrecords and upload without at least TRIMMING the start and end of the video?

I would recommend considering editor support when deciding these things. Consider what your users are actually doing with the files. Are they uploading them as-is, or are they editing them? Both?

@ammen99
Copy link
Owner

ammen99 commented Sep 4, 2023

@0atman The change was later reverted, the default in 0.4 is libx264 again. Though downstream distros might have changed the defaults (though that isn't something I can influence).

Edit: The container format did change though.

@ammen99 ammen99 mentioned this pull request Aug 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

libvpx fails to run
4 participants