Closed scribblemaniac closed 8 months ago
Thanks for reporting this! Yes, I will take a look at it. Very likely it's my fault.
I opened a ticket in the Fedora Bugzilla for tracking: https://bugzilla.redhat.com/show_bug.cgi?id=1914555
The caveat is that my fix will land in Fedora 34/Rawhide instantly, but will take a couple of days to reach Fedora33 stable due to QA gating.
Another problem is that ffmpeg itself might not be enough, since each video format requires a different codec and Fedora doesn't ship some of them due to licensing restrictions.
Another problem is that ffmpeg itself might not be enough, since each video format requires a different codec and Fedora doesn't ship some of them due to licensing restrictions.
Ideally the following external codecs should be installed and ffmpeg built with support for: libx264, libvpx, libvorbis, libmp3lame, and libxvid. If some of these are missing, ffmpeg should automatically switch to a different encoder that is available and supported by the container format, although in most cases that means a lower-quality output or worse compression.
Scratch the above. The ffmpeg package is not in the main Fedora repositories so perhaps Pencil2D would be better suited for the RPM Fusion repositories?
@AndyMender What's the status of this and the 0.6.6 release? I know your question wasn't ever addressed so I'll try to do that now. None of us here have a lot of experience with Fedora or it's packaging practices, so I think we will have to defer to you on what you think is the best way of resolving this issue. While not strictly required, ffmpeg is needed for quite an important feature of Pencil2D. Would it be much harder to install in the Fusion repositories? Would you say that most Fedora users already add the fusion repositories or is it not so common?
@AndyMender What's the status of this and the 0.6.6 release? I know your question wasn't ever addressed so I'll try to do that now. None of us here have a lot of experience with Fedora or it's packaging practices, so I think we will have to defer to you on what you think is the best way of resolving this issue. While not strictly required, ffmpeg is needed for quite an important feature of Pencil2D. Would it be much harder to install in the Fusion repositories? Would you say that most Fedora users already add the fusion repositories or is it not so common?
If ffmpeg
provides important features for Pencil2D, one could then consider it a "recommended" requirement. However, I think it should just be a regular requirement then to make user experience more complete.
I would say most Fedora users will use the RPM Fusion repositories, exactly because of codec support, but the package itself cannot make such assumptions per packaging guidelines.
What I will do is the following:
@AndyMender Any progress on this?
@AndyMender Have you made any progress on this issue?
Two things have changed since the last update on this issue.
ffmpeg
with limited codec support (code that may be patent-encumbered or otherwise legally objectionable in the US) is now packaged in Fedora. Now the Pencil2D
package can have a hard dependency on /usr/bin/ffmpeg
, which can be satisfied by the Fedora ffmpeg-free
package, or by the RPMFusion ffmpeg
package for those users that have it installed.I have issued updates for all Fedora releases that should fix the problems reported in this issue:
I have also added a package for EPEL9: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2023-ea71b78f67
I spent a few minutes manually testing these packages, and everything seemed to work as expected, but I am not personally a Pencil2D user, so I would appreciate any feedback on these updates. Please feel free to open new downstream bugs against the Fedora package in Red Hat Bugzilla if you find any problems. I also welcome and appreciate co-maintainers.
I took a look at the changes you made and the codecs supported in ffmpeg-free and it looks all good to me. I’ll still set aside some time to set up a Fedora VM and take a closer look at how Pencil2D copes with the limited codec support, though. Thanks for adopting the package and dealing with these issues!
I have setup a fresh Fedora 39 Desktop VM and have tested this. When I installed Pencil2D, it also installed ffmpeg-free as a dependency. However, it did not install openh264, so when I tried to import videos that use the h.264 codec, ffmpeg failed with a missing library error. After manually installing the openh264 package, everything worked as expected. Exporting seems to be handled gracefully, defaulting to different codecs where necessary for the supported output container formats. MP4 defaults to MPEG-4 rather than H264 for export, which is not the best but at least it works. Switching to the version of ffmpeg in rpm-fusion, everything worked fine and H264 was the default for the MP4 format.
@musicinmybrain Can I please get your input on the openh264 issue I encountered? ffmpeg-free is build with openh264 support, so is it a mistake with that package that it doesn't have that as a dependency, or is this something Fedora users are expected to handle themselves? If the ffmpeg-free package is working as expected, I would suggest that we add openh264 as a weak dependency for Pencil2D as it's almost certainly the codec users will most frequently want to import from and should be present if libx264 is not available.
Once this last point is sorted out, I think we're good to close this issue. There's a lot we could do to better adjust to different ffmpeg configurations, but that's no longer just a Fedora issue. From my testing, the importing/exporting user experience is otherwise on par with other distros and platforms.
OpenH264 support is available from a special disabled-by-default repo in Fedora; see https://docs.fedoraproject.org/en-US/quick-docs/openh264/. Installing the openh264
package from the fedora-cisco-openh264
repo will get the import working (I tested this in a clean VM with
https://download.blender.org/durian/trailer/sintel_trailer-480p.mp4), but the user has to do it manually; we can’t add a dependency (and ffmpeg-free
is patched to dlopen
it rather than linking it normally) because the repository is disabled by default. Unfortunately, due the patent licensing situation, this is the case for OpenH264 support system-wide. On the other hand, that means users are at least more likely to be able to figure out what to do.
Updating installation instructions here: https://github.com/pencil2d/pencil2d.github.io/pull/27
Closing this since the updated installation instructions were merged a while ago.
Issue Summary
Two issues were reported by one of our users using the Pencil2D dnf package for Fedora 33.
The first issue is that ffmpeg is not included as a requirement for the package. Pencil2D needs ffmpeg installed to be able to successfully export video.
The second issue is that the user's about dialog indicated that it was a November 29th development build. Likely this was not a development build but rather the package was built with the incorrect build environment. The qmake call should have
CONFIG+=release CONFIG+=PENCIL2D_RELEASE
passed to it at least so that it is built as a release version rather than a development version.@AndyMender Could you please take a look at this issue when you get a chance?
System Information
Pencil2D Version: 0.6.5
Operating System: Fedora 33