| Summary: | f38: ffmpeg install fails. conflict with libavcodec-free and missing libplacebo.so | ||
|---|---|---|---|
| Product: | Fedora | Reporter: | Mershl <mweires> |
| Component: | ffmpeg | Assignee: | Dominik 'Rathann' Mierzejewski <dominik> |
| Status: | RESOLVED INVALID | ||
| Severity: | normal | CC: | belegdol, kwizart, leigh123linux |
| Priority: | P1 | ||
| Version: | f38 | ||
| Hardware: | x86_64 | ||
| OS: | GNU/Linux | ||
| namespace: | |||
|
Description
Mershl
2023-03-25 23:22:12 CET
The conflicts is intentional. https://rpmfusion.org/CommonBugs Trying to solve the conflict on Silverblue 38 is not as straight forward as I thought. $ rpm-ostree override remove libavcodec-free --install libavcodec-freeworld -> reports a hard dependency of libavformat-free towards libavcodec-free $ rpm-ostree override remove libavcodec-free libavformat-free --install libavcodec-freeworld -> reports further conflicts (libavfilter-free requires libavcodec-free) It's kinda weird that SB38 does not include ffmpeg(-free) by default, but includes libavcodec-free and gstreamer1-plugin-libav by default. Seems like you need to remove and install more than one package at the time to rebase ffmpeg to our version. $ rpm-ostree override remove libavcodec-free libavformat-free libavfilter-free libavutil-free libswscale-free libswresample-free libpostproc-free --install libavcodec-freeworld is necessary to make it work. Can we add this as a CommonBug for F38 once someone can confirm that these are equivalent? As a sidenote: the recommended `gstreamer1-plugin-libav` of https://rpmfusion.org/Howto/OSTree is reported as Inactive requests: gstreamer1-libav (already provided by gstreamer1-plugin-libav-1.22.1-1.fc38.x86_64) on Silverblue 38. The replace of Comment 4 leads to a very laggy video playback on Twitch (avc1 codec) in Native Firefox (default settings), which is not seen on Flatpak Firefox or Chrome. $ rpm-ostree status fedora:fedora/38/x86_64/silverblue Version: 38.20230325.n.0 (2023-03-25T08:09:28Z) RemovedBasePackages: libavformat-free libavutil-free libswresample-free libavcodec-free libpostproc-free libswscale-free libavfilter-free mesa-va-drivers LayeredPackages: ffmpeg gstreamer1-plugin-openh264 gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi libavcodec-freeworld libva-utils mesa-va-drivers-freeworld rpmfusion-free-release rpmfusion-nonfree-release Which GPU do you have ? (I guess it's AMD, so using mesa-va-driver-freeworld make senses) ? Can you test video acceleration works with mpv with a test media ? Yes, I'm testing using an AMD RX7900XTX. Continue testing with the deployment of Comment 6... HW acceleration using native mpv seems to work, Playpack looks OK: $ /usr/bin/mpv ~/Downloads/Sintel_1080_10s_30MB.mp4 --hwdec=yes (+) Video --vid=1 (*) (av1 1920x818 30.000fps) Using hardware decoding (vaapi). Native Firefox reports "H264 HW, AV1 SW, AV1 HW" but no "H264 SW" under "Codec Support Information" in "about:support". Twitch forces h264 (avc1) showing the very laggy playback. Meanwhile Youtube fallbacks all playback to VP9, also for videos previously playing with AV1. VP9 playback shows no issues and appears very smooth. Native Firefox is tested with default settings + no extensions. See https://bugzilla.rpmfusion.org/show_bug.cgi?id=6618 for a possible reason which software codec doesn't work. Thanks for linking the report Nicolas. I can confirm upgrading Native FF from 111 to 112 beta fixes the laggy playback on Twitch on ffmpeg 6.0 Coming back to the original issue. Is the following the recommended way for Silverblue 38 users to solve the libavcodec-free conflict on installing ffmpeg? $ rpm-ostree override remove libavcodec-free libavformat-free libavfilter-free libavutil-free libswscale-free libswresample-free libpostproc-free --install libavcodec-freeworld (In reply to Mershl from comment #10) > Thanks for linking the report Nicolas. I can confirm upgrading Native FF > from 111 to 112 beta fixes the laggy playback on Twitch on ffmpeg 6.0 > > Coming back to the original issue. Is the following the recommended way for > Silverblue 38 users to solve the libavcodec-free conflict on installing > ffmpeg? > > $ rpm-ostree override remove libavcodec-free libavformat-free > libavfilter-free libavutil-free libswscale-free libswresample-free > libpostproc-free --install libavcodec-freeworld Not sure about the install part. I would suggest to try either: 1/ rpm-ostree install libavcodec-freeworld (using fedora ffmpeg-free and just complement the missing codecs with the rpmfusion complementary package). Or, use the full rpmfusion build. 2/ rpm-ostree override remove libavcodec-free libavformat-free libavfilter-free libavutil-free libswscale-free libswresample-free libpostproc-free --install ffmpeg I tend to suggest the 2/ solution as there; you won't have any delay between fedora and rpmfusion counterpart packages. The solution /1 only override the fedora libavcodec build keeping the others libraries. We can document the two options with the described preference and leave end-users choose. Can you test them and report ? Thanks in advance. For this test I've setup a completely fresh Silverblue 38 system with only the rpmfusion repos and mpv overlayed. For test applications I used native FF112 beta and native mpv. 1/ SB38 does not have ffmpeg(-free) installed per default so I added it to your suggested command. $ rpm-ostree install libavcodec-freeworld ffmpeg-free installs successfully and seems to behave correctly. I did not spent too much time with this configuration as the last statement of rpmfusion is that this combination is unsupported/not recommended. 2/ Building upon https://rpmfusion.org/Howto/OSTree a complete AMDGPU setup could look like this: $ rpm-ostree override remove mesa-va-drivers --install mesa-va-drivers-freeworld $ rpm-ostree override remove libavcodec-free libavformat-free libavfilter-free libavutil-free libswscale-free libswresample-free libpostproc-free --install ffmpeg --install libavcodec-freeworld $ rpm-ostree install gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi Note 1: gstreamer1-plugin-libav (listed in the OSTree guide) shows `error: "gstreamer1-plugin-libav" is already provided by: gstreamer1-plugin-libav-1.22.1-1.fc38.x86_64` on a fresh SB38 installation, so I removed it from the list. If there's a difference between the Fedora and the rpmfusion provided gstreamer1-plugin-libav it should be added to the override remove list. Note 2: https://rpmfusion.org/Howto/OSTree is missing a h264 codec. Without gstreamer1-plugin-openh264 native Firefox errors on all h264 content. The setup of 2/ works for every content I could find: h264, h265, vp9 and av1. And all common Streaming sites. Keeping in mind the FF111 + ffmpeg 6.0 bug though. Do you agree with /2 being the new recommended approach for AMDGPU users on F38/SB38? |